Flask-上下文

2017-09-27  本文已影响32人  猴子精h

Flask使用上下文让特定的变量在一个线程中全局可访问(例如:我们把request当作全局变量使用,事实上,request不可能是全局变量。试想,在多线程服务器中,多个线程同时处理不同客户端的不同请求时,没个线程看到的request对象必然不同),于此同时却不会干扰其他的线程;

在Flask中有两种上下文:程序上下文请求上下文;

Flask上下文全局变量

变量名 上下文 说明
current_app 程序上下文 当前激活程序的程序实例
g 程序上下文 处理请求时用作临时存储的对象。每次请求都会重设这个变量
request 请求上下文 请求对象,封装了客户端发出的HTTP请求内容
session 请求上下文 用户会话,用于存储请求之间需要“记住”的值的词典

Flask在分发请求之前激活程序和请求上下文,请求处理完成后再将其删除。程序上下文被激活后,就可以在线程中使用current_appg变量。类似,请求上下文被激活后,就可以使用requestsession变量;

下面通过python shell演示:

from hello import app
from flask import current_app

# 激活上下文
app_ctx = app.app_context()
app_ctx.push()   

print current_app.name

# 删除上下文
app_ctx.pop()
上一篇 下一篇

猜你喜欢

热点阅读