本帖最后由 15195775117 于 2020-10-22 17:11 编辑
----------“上下文”----------
FLASK从客户端接收请求后,要让“视图函数”访问“请求对象request”。 request封装了客户端发送的HTTP请求。
“上下文”的诞生: 视图函数访问request的方式之一是:将其作为参数传入视图函数,这存在弊端:应用中每个视图函数都多出一个参数,如果视图函数在处理请求时还访问其他对象,情况会变得复杂。为尽量简化视图函数的参数,Flask使用“上下文”临时把某些对象变为全局可访问。
flask中有2种“上下文”:“应用上下文”“请求上下文”。
“应用上下文”的变量: 1、current_app------当前应用的应用实例, 2、g------处理请求时,用作临时存储的对象,每次请求都会重置这个变量
“请求上下文”的变量: 1、request 2、session------“用户会话”,值是一个字典,存储请求之间需要记住的值
Flask在分派请求之前,激活/推送“应用和请求上下文”,请求处理完成后,将其删除。
“应用上下文”被推送后,可在当前线程中使用current_app和g变量。 “请求上下文”被推送后,可使用request和session变量。
|