当前位置: 首页 > news >正文

一周学会Flask3 Python Web开发-request请求钩子(Hook)

锋哥原创的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

相关文章:

  • Day7 25/2/20 THU
  • Hadoop初体验
  • 黑客如何利用提示词工程操纵AI代理?
  • 接口测试-API测试中常用的协议(下)
  • Nginx 部署 Vue 指南
  • 热门的AI网页版网址大全
  • 毕业项目推荐:基于yolov8/yolo11的100种中药材检测识别系统(python+卷积神经网络)
  • 飞机沿设置路径飞行以及跟踪飞行物(十一)
  • 【技术追踪】DiffDGSS:基于扩散模型的确定性表示进行泛化性视网膜图像分割(MICCAI-2024)
  • 实现网站内容快速被搜索引擎收录的方法
  • Rust 未来会成为主流的编程语言吗?
  • 掌握 ElasticSearch 四种match查询的原理与应用
  • Android Http-server 本地 web 服务
  • rust学习六、简单的struct结构
  • Linux-ubuntu系统移植之Uboot启动流程
  • 前端CSS面试题及参考答案
  • 计算机网络安全之一:网络安全概述
  • 新站如何快速获得搜索引擎收录?
  • 如何把deepseek接入python?
  • Android Java创建ViewModel新api
  • 美施压拉美国家选边站队,外交部:搞阵营对抗注定失败
  • 新华视点丨广西抗旱一线调查
  • 冲击一英里4分钟大关,基普耶贡挑战女子中长跑极限
  • 张文宏团队公布广谱抗猴痘药物研发进展,将进入临床审批阶段
  • 沂水县委书记陈士贤,跨市履新泰安市委常委、组织部部长
  • 工程院院士应汉杰不再担任苏州大学校长