美文网首页
flask学习笔记3-flask上下文和请求钩子

flask学习笔记3-flask上下文和请求钩子

作者: 如果仲有听日 | 来源:发表于2020-03-05 11:11 被阅读0次

    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 默认会在页面的所有视图中都生效,作用于单次请求,如果只是应用到多个视图的某一个或一些视图上,需要在钩子函数中做条件判断:

    示例代码二

    相关文章

      网友评论

          本文标题:flask学习笔记3-flask上下文和请求钩子

          本文链接:https://www.haomeiwen.com/subject/dufvlhtx.html