当一个请求进入flask框架的时候会首先实例化一个Requestcontext请求
请求的信息封装在Request里面
然后将请求推入request_ctx_stock栈中
在推入之前会检查app_ctx_stock栈顶元素
如果 栈顶为空或者不是当前对象
flask会把一个AppContext推入栈中
接着将请求推入request_ctx_stock栈中
等项目结束后,会自动弹出
返回当前的app。
会自动引用创建的Flask对象, 需要在项目的其他文件中使用app时, 应该通过current_app来获取, 可以减少循环导入问题
# 导包
from flask import Flask, request, session, current_app, g
# 在视图函数外面,获取当前工程的app对象
with app.app_context():
print(current_app)
有些情况可能没有app,那就去app的create_app方法搞一个
from app import create_app
app = create_app()
with app.app_context():
global
flask给开发者预留的一个容器, 用于记录自定义数据
保存用户的数据
g.username = "Tom" # 赋予g变量值
print(g.username) # 获取g变量值