flask__请求、响应钩子

在每两个组件之间可以使用中间件进行额外的处理一些事情

request 

   当 flask 应用处理请求时,它会根据从 WSGI 服务器收到的环境创建一个 Request 对象。因为工作者(取决于服务器的线程、进程或协程)一次只能处理一个请求,所以在该请求期间请求数据可被认为是该工作者的全局数据。

 

请求钩子 before_request 

    before_request,在每个路由被调用之前都会运行的,用于数据埋点,统计流量,访问次数和验证用户等,这个before_request的钩子函数不能有返回

    before_request 如果有了返回值,对应的视图函数就不会执行了,直接返回对应的值

   1、情景1,验证用户的 sign

         

   2、验证用户

    

   3、请求时间验证

    

响应钩子 after_request

    after_request,封装响应信息,通常用于路由请求之后想要进行怎样的处理,需要有返回,多用于处理 response,有以下特点:

      ~ 必须有 response 参数

      ~ return 的必须是一个 Response 对象

      ~ 通常用来修改响应

      ~ 如果程序运行报错( 视图函数出现错误 ),此 after_request 不会被调用

 

         

 

teardown_request

    teardown_request,用于释放资源,无论是否视图函数有错误都会调用,可用于数据库的关闭;即在每次请求中总是会执行的

    ps:这个函数一定要传参数

         

 

before_first_request

    before_first_request,服务器启动后初始化数据,用于设置全局变量

         

 

g

  同一个请求共享数据的,不能跨请求,作用:

    ~ 验证用户信息

    ~ 链接数据库

  链接数据库的例子

  

    在视图中使用

    

 

   PS:before-request 如果返回了值,对应的视图函数不会执行了,直接返回对应的值

      teardown_request 在每次请求中总是会执行

 

session

    session 可以跨请求,存在服务端

     

    

     

 

posted @   哩子吖  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示