一周学会Flask3PythonWeb开发-request请求钩子(Hook)
- 电脑硬件
- 2025-08-25 02:03:02

锋哥原创的Flask3 Python Web开发 Flask3视频教程:
2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili
有时候我们业务需求对请求做一些鉴权,日志,统计分析等功能,这时候可以对请求进行预处理( preprocessing )和后处理( postprocessing ),这时可以使用Flask提供的一些请求钩子( Hook),它们可以用来注册在请求处理的不同阶段执行的处理函数(或称为回调函数,即 Callback)。这些请求钩子使用装饰器实现,通过程序实例app调用。Flask3默认实现的三种请求钩子如下所示。
钩子说明before_request注册一个函数,在处理每个请求前运行after_request注册一个函数,如果没有未处理的异常抛出,会在每个请求结束后运行teardown_request注册一个函数,即使有未处理的异常抛出,会在每个请求结束后运行。如果发生异常,会传入异常对象作为参数到注册的函数中下面是一个测试示例:
@app.route('/test_hook') def test_hook(): print('do something...') # a = 1 / 0 return 'ok' @app.before_request def do_something_before(): print('before_request', request.url) @app.after_request def do_something_after(response): print('after_request', request.url) return response @app.teardown_request def do_somethin_teardown(exception): print('teardown_request', exception, request.url)控制台打印:
before_request http://127.0.0.1:5000/test_hook do something... after_request http://127.0.0.1:5000/test_hook teardown_request None http://127.0.0.1:5000/test_hook一周学会Flask3PythonWeb开发-request请求钩子(Hook)由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“一周学会Flask3PythonWeb开发-request请求钩子(Hook)”