纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Flask  请求钩子 Flask  请求钩子的实现

tigeriaf   2021-11-26 我要评论
想了解Flask  请求钩子的实现的相关内容吗tigeriaf在本文为您仔细讲解Flask  请求钩子的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Flask  请求钩子实现,Flask  请求钩子,请求钩子下面大家一起来学习吧。

在 Web 应用中有时需要在响应请求前或者响应请求后做一些处理为了让每个视图函数避免编写重复功能的代码Flask 提供了请求钩子它们可以用来注册在请求处理的不同阶段执行的处理函数我们就可以轻易的对请求进行预处理和后处理。

Flask 常用请求钩子如下:

  • before_first_request:在处理第一个请求之前运行
  • before_request:在每次请求之前运行如果没有未处理的异常抛出会在每个请求结束后运行
  • after_request:如果没有未处理的异常抛出在每次请求结束后运行
  • teardown_request:即使有未处理的异常抛出也会在每个请求结束后运行

这些请求钩子是使用装饰器方式实现用法也非常简单使用起来和app.route()装饰器基本相同。下面使用这些请求钩子装饰一些函数用于在每次请求前后做一些处理为了方便理解只是单纯打印一句话。

@app.before_first_request

def before_first_request():

    print('before_first_request')

@app.before_request

def before_request():

    print('before_request')

@app.after_request

def after_request(response):

    print('after_request')

    return response

@app.teardown_request

def teardown_request(e):

    print('teardown_request')

@app.route('/test')

def test():

    return 'test'

第一次请求控制台输出:

第二次请求控制台输出:

下面是请求钩子的一些常见应用场景:

  • before_first_request:第一个请求之前运行可以进行一些 Web 程序的初始化操作
  • before_request:每次请求之前运行可以进行数据库连接的创建操作、用户的权限校验操作等
  • after_request:我们经常在视图函数中进行数据库操作比如更新、插入之后需要将更改提交到数据库中提交更改的代码就可以放到 after_request 钩子注册的函数中
  • teardown_request:可以接收视图函数的异常一般用来记录错误日志

注意: 每个请求钩子可以注册任意多个处理函数函数名也并不是必须和钩子名称相同。如果有多个 before_request执行顺序从上往下;after_request 接收一个响应对象并且返回同一个或者更新后的响应对象多个 after_request 执行顺序是从下往上。


相关文章

猜您喜欢

  • QT自定义对话框 C/C++ QT实现自定义对话框的代码实例

    想了解C/C++ QT实现自定义对话框的代码实例的相关内容吗lyshark在本文为您仔细讲解QT自定义对话框的相关知识和一些Code实例欢迎阅读和指正我们先划重点: QT自定义对话框, QT对话框下面大家一起来学习吧。..
  • Python Pandas 数据合并 一文搞懂Python中Pandas数据合并

    想了解一文搞懂Python中Pandas数据合并的相关内容吗Dream丶Killer在本文为您仔细讲解PythonPandas数据合并的相关知识和一些Code实例欢迎阅读和指正我们先划重点:PythonPandas数据合并,Pandas数据合并下面大家一起来学习吧。..

网友评论

Copyright 2020 www.ducttapegames.com 【环球游戏网】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式