Flask上下文

 

Flask上下文

我们可以把编程中的上下文理解为当前环境(environment)的快照(snapshot)。
Flask中有两种上下文,程序上下文(application context)和请求上下文(request context)。

一、程序上下文:程序上下文中存储了程序运行所必须的信息,例如current_app和g变量。

  1.  current_app:指向处理请求的当前程序实例;

  2.  g:替代Python的全局变量用法,确保仅在当前请求中可用。用于存储全局数据,每次请求都会重设;

二、请求上下文:当客户端发来请求时,请求上下文就登场了。请求上下文里包含了请求的各种信息,比如请求的URL,请求的HTTP方法等。例如request和session。

  1.  request:封装客户端发出的请求报文数据;

  2.  session:用于记住请求之间的数据,通过签名的Cookie实现;

request全局变量
Flask会在每个请求产生后自动激活当前请求的上下文,激活请求上下文后,request被临时设为全局可访问。而当每个请求结束后,Flask就销毁对应的请求上下文。注:request请求对象只在各自的线程内是全局的。

属性
path u'/hello'
full_path u'/hello?name=Grey'
host u'/hello.com'
host_url u'http://hello.com'
base_url u'http://hello.com/hello'
url u'http://hello.com/hello?name=Li'
url_root u'http://hello.com/

常用属性和方法