1. 请求上下文
1.1 request请求上下文
request请求体上下文在django和flask的视图函数中是有区别的
django视图函数中要填写request请求体,每个客户端的请求是很明确的
flask中的request是一个全局变量,每个client请求都是一个flask线程,多个请求的多个线程都可以使用全局的request。这是通过线程id去区分具体是哪一个client连接,每进来一个新的请求,flask会把新的请求信息带上线程id 加入到全局的request中
1.2 session上下文
笔记中的session其实也是一种请求上下文
2. 应用上下文:current_app和g
current_app和g都属于应用上下文对象
区别:
current_app:表示当前运行程序文件的程序实例,只要flask后台程序不停止,都一直存在
g:处理单个请求时,用于临时存储的对象,每次请求都会重设(清空)这个变量,相当于单词请求的全局变量。方便函数之间少传递参数
3. 请求钩子
request hook是针对单个请求的生命周期而言的,通过装饰器实现
@app.before_first_request()
@app.before_request()
@app.after_request(response)
@app.teardown_request(response) 工作在debug = False时生效
示例代码一 接示例代码一request hook 默认会在页面的所有视图中都生效,作用于单次请求,如果只是应用到多个视图的某一个或一些视图上,需要在钩子函数中做条件判断:
示例代码二
网友评论