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/ |
常用属性和方法