Flask中特殊装饰器的使用
(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中的自定义过滤器,直接可在模板中使用
这两个特殊装饰器主要用在模板渲染!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 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 特殊装饰器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
numpy中数组拼接、数组合并方法总结(append(), concatenate, hstack, vstack
numpy库是一个高效处理多维数组的工具,可以在进行边写的数组计算上进行一系列的操作,下面这篇文章主要给大家介绍了关于numpy中数组拼接、数组合并方法(append(), concatenate, hstack, vstack, column_stack, row_stack, np.r_, np.c_等)的相关资料,需要的朋友可以参考下2022-08-08
最新评论