• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共46篇

    python3.X - Web - Flask1.1.1

关闭

返回栏目

关闭

返回python3.X - Web - Flask1.1.1栏目

12 - 应用上下文 - ApplicationContext - current_app|g

作者:

贺及楼

成为作者

更新日期:2022-11-18 14:55:32

应用上下文 - ApplicationContext - current_app_g

顺序

当一个请求进入flask框架的时候会首先实例化一个Requestcontext请求
请求的信息封装在Request里面
然后将请求推入request_ctx_stock栈中
在推入之前会检查app_ctx_stock栈顶元素
如果 栈顶为空或者不是当前对象
flask会把一个AppContext推入栈中
接着将请求推入request_ctx_stock栈中
等项目结束后,会自动弹出

current_app

返回当前的app。
会自动引用创建的Flask对象, 需要在项目的其他文件中使用app时, 应该通过current_app来获取, 可以减少循环导入问题

  1. # 导包
  2. from flask import Flask, request, session, current_app, g
  3. # 在视图函数外面,获取当前工程的app对象
  4. with app.app_context():
  5. print(current_app)

有些情况可能没有app,那就去app的create_app方法搞一个

  1. from app import create_app
  2. app = create_app()
  3. with app.app_context():

g

global
flask给开发者预留的一个容器, 用于记录自定义数据
保存用户的数据

  1. g.username = "Tom" # 赋予g变量值
  2. print(g.username) # 获取g变量值