什么是上下文
上下文,英文context,叫它 引用池 或者 引用区 更加恰当。PageContext会把所能得到的属性全部集中到一个区域里,可以通过这个小区域,接受和调用到各个范围传递过来的属性,这就是所谓的‘上下文’。
from flask import request
data = request.form
data = request.args
这里的request属于上下文,请求对象,封装了客户端发出的Http请求中的内容,具体说明:假设前端使用ajax带参数data:{a:b}请求一个后端接口,我们就可以使用request这个‘全局变量’来获取ajax的请求数据,如果接口是post,put类型则可以使用
data = request.form
获取,若果是get请求,则可以使用
data = request.args
Flask使用上下文让特定的变量在一个线程中全局可以访问,与此同时却不会干扰其他线程。
在Flask中有两种上下文:应用(程序)上下文和请求上下文
变量名 | 上下文 | 说明 |
---|---|---|
current_app | 应用上下文 | 当前激活程序的程序实例 |
g | 用用上下文 | 处理请求时用作临时存储对象,每次请求都会重设这个变量 |
request | 请求上下文 | 请求对象,封装了客户端发出的Http请求中的内容 |
session | 请求上下文 | 用户回话,用于存储请求之间需要记住的的字典 |
Flask在分发请求之前激活应用和请求上下午文,请求处理完成后再将其删除。程序上下文被推送后,就可以在线程中使用current_app和g变量。类似的,请求上下文被推送后,就可以使用request和session变量。如果使用这些变量是我们没有激活程序上下文或请求上下文,就会导致错误。
网友评论