码迷,mamicode.com
首页 > 其他好文 > 详细

Flask初识,第十篇,Flask中的装饰器 before_request after_request

时间:2018-11-26 19:55:34      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:blog   gpo   src   img   bsp   dex   初识   return   理解   

 

Flask我们已经学习很多基础知识了,现在有一个问题

我们现在有一个 Flask 程序其中有3个路由和视图函数,如下:

技术分享图片 简单的小程序

如果登陆了,就可以访问 index 和 home 页面,如果没登录就跳转到 login 登录

要怎么解决呢, session 对, 用 session 除了 Login 函数之外的所有函数里面全校验 session 是否登录了

太麻烦了,现在咱们只有3个函数,如果成百上千个怎么整啊

装饰器,对没错,装饰器是一个很好的方案,但是啊,我现在还是成败上千个函数,我要在每一个函数定义的时候加上@装饰器,还是很麻烦

那么就引出了我们要学习的第一个知识点:

 

1.@app.before_request 在请求(request)之前做出响应

技术分享图片 解决所有问题

@app.before_request 也是一个装饰器,他所装饰的函数,都会在请求进入视图函数之前执行

request.path 是来读取当前的url地址如果是 /login 就允许直接通过 return None 你可以理解成通过放行

校验session中是否有user 如果没有的话,证明没有登录,所以毫不留情的 redirect("/login") 跳转登录页面

还有一个要提的 @app.before_first_request 它与 @app.before_request 极为相似或者说是一模一样,只不过它只会被执行一次

 

2. @app.after_request 在响应(response)之前做出响应

@app.after_request
def foot_log(environ):
    if request.path != "/login":
        print("有客人访问了",request.path)
    return environ

很少应用,但是要了解有这么个东西

Flask初识,第十篇,Flask中的装饰器 before_request after_request

标签:blog   gpo   src   img   bsp   dex   初识   return   理解   

原文地址:https://www.cnblogs.com/duanhaoxin/p/10021728.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!