搜索

查看: 3106|回复: 11

[Python] Flask中特殊装饰器的使用

[复制链接]
发表于 2023-5-4 17:19:08 | 显示全部楼层 |阅读模式
Editor 2023-5-4 17:19:08 3106 11 看全部
(1)@app.before_request
请求到达视图函数之前,进行自定义操作,类似django中间件中的process_request,在app中使用则为全局,在蓝图中使用则针对当前蓝图
注意正常状态下return值必须为None
(2)@app.after_request
响应返回到达客户端之前,进行自定义操作,类似jango中间件中的process_response,在app中使用则为全局,在蓝图中使用则针对当前蓝图
注意正常状态下视图函数必须定义一个形参接收response对象,并通过return response返回
(3)@app.errorhandler()
错误状态码捕获执行函数,装饰器参数务必是4xx或者5xx的int型错误状态码
(4) @app.template_global() :定义装饰全局模板可用的函数,直接可在模板中进行渲染使用
@app.template_filter(): 定义装饰全局模板可用的过滤器函数,类似django中的自定义过滤器,直接可在模板中使用
这两个特殊装饰器主要用在模板渲染!!!
import apps
from flask import request, session, redirect

app = apps.create_app()

@app.before_request
def before1():
    print("before1", request)
  
@app.before_request
def before2():
    print("before2")
    if request.path == "/":
        return None
    else:
        #这里抛出了一个异常,会被@app.errorhandler(Exception)
        # 捕获到。
        raise Exception("hahaha")

@app.before_request
def before3():
    print("before3")
  
@app.after_request
def after1(res):
    print("after1")
    return res

@app.after_request
def after2(res):
    print("after2")
    return res

@app.after_request
def after3(res):
    print("after3")
    return res
  
# 处理异常,接受参数,可以重定向到指定页面
@app.errorhandler(Exception)
def error(e):
    print("error")
    return redirect("/")

@app.route("/login")
def login():
    print("login")
    return "login"

@app.route('/')
def hello_world():  # put application's code here
    return 'Hello World!'

if __name__ == '__main__':
    app.run()
到此这篇关于Flask中特殊装饰器的使用的文章就介绍到这了,更多相关Flask 特殊装饰器内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛
回复

使用道具 举报

发表于 2023-6-29 19:37:07 | 显示全部楼层
伊索谗言 2023-6-29 19:37:07 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
回复

使用道具 举报

发表于 2023-6-29 19:48:56 | 显示全部楼层
ffycxyw2274436 2023-6-29 19:48:56 看全部
其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
回复

使用道具 举报

发表于 2023-6-29 20:55:25 | 显示全部楼层
井底燕雀傥 2023-6-29 20:55:25 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

发表于 2023-6-30 08:49:47 | 显示全部楼层
丁侦球 2023-6-30 08:49:47 看全部
论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
回复

使用道具 举报

发表于 2023-6-30 09:51:57 | 显示全部楼层
风来时狂放 2023-6-30 09:51:57 看全部
其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
回复

使用道具 举报

发表于 2023-6-30 17:35:18 | 显示全部楼层
素色流年783 2023-6-30 17:35:18 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
回复

使用道具 举报

发表于 2023-7-1 00:13:46 | 显示全部楼层
当当当当裤裆坦 2023-7-1 00:13:46 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
回复

使用道具 举报

发表于 2023-7-1 01:44:17 | 显示全部楼层
123456868 2023-7-1 01:44:17 看全部
既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
回复

使用道具 举报

发表于 2023-7-3 17:09:50 | 显示全部楼层
123456823 2023-7-3 17:09:50 看全部
其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
回复

使用道具 举报

  • 您可能感兴趣
点击右侧快捷回复 【请勿灌水】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

RSS订阅| SiteMap| 小黑屋| 知鸟论坛
联系邮箱E-mail:zniao@foxmail.com
快速回复 返回顶部 返回列表