Flask上下文

Posted zxt-cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask上下文相关的知识,希望对你有一定的参考价值。

上下文: 保存前端和后台连接状态的容器

1>> 请求上下文:

  request: 主要针对http的请求内容,

    常用属性: args   user= request.arge.get(‘user‘);

         form表单当中的数据: user =request.form.get(‘user‘)

         data 前端页面传给后端的数据

         cookie : 状态保持的一种

 

  session: 保存的用户数据  

    session[‘name‘] = user.id 记录用户信息

    session.get(‘name‘)获取用户信息

2>> 应用上下文: 伴request请求而生, 伴request而灭

  current_app:  用于存储应用程序中的变量, current_name打印当前app的名称

    也可以存储一些变量:

      1.应用的启动脚本是哪个文件, 启动时制定了那些参数

      2.加载了那些配置文件

      3.连接了那个数据库

      4.应用的ip; 内存..........

  g: 充当媒介, 可以传递一些数据, 保存的是当前请求的全局变量

 

请求上下文 : 保存了客户端和服务器交互的数据

应用上下文: flask应用程序运行过程中, 保存的配置信息, 程序名, 数据库连接, ..............

 

这里需要通俗地解释一下application contextrequest context

  1. application 指的就是当你调用app = Flask(__name__)创建的这个对象app

  2. request 指的是每次http请求发生时,WSGI server(比如gunicorn)调用Flask.__call__()之后,在Flask对象内部创建的Request对象;

  3. application 表示用于响应WSGI请求的应用本身,request 表示每次http请求;

  4. application的生命周期大于request,一个application存活期间,可能发生多次http请求,所以,也就会有多个request

 

application 就是指app = Flask(__name__)对象
request 就是对应每次http 请求创建的Request对象
flask通过_RequestContextappRequest关联起来

总结

    1. app = Flask(__name__)创建了application, 这个application对应的上下文,就是application context

    2. Flask每响应一个http请求,就会创建一个Request对象,这个request对象对应的上下文,就是request context



以上是关于Flask上下文的主要内容,如果未能解决你的问题,请参考以下文章

Flask钩子函数

flask基础之请求钩子

在使用Flask的APScheduler时,如何优雅的导入flask上下文

14Flask请求上下文

Flask的Context(上下文)学习记录

片段无法转换为上下文