Flask之请求钩子

什么是请求钩子?说白了,就是在执行视图函数前后你可以进行一些处理,Flask使用装饰器为我们提供了注册通用函数的功能。

  1. before_first_request:在处理第一个请求前执行
  2. before_request:在每次请求前执行
  3. after_request:每次请求之后调用,前提是没有未处理的异常抛出
  4. teardown_request:每次请求之后调用,即使有未处理的异常抛出

from flask import Flask
app = Flask(__name__)

@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(resp):
    print(‘after_request‘)
    return resp

@app.teardown_request
def teardown_request(e):
    print(‘teardown_request‘)

@app.route("/")
def view_fn():
    return "view_fn"

if __name__ == "__main__":
    app.run()

第一次请求:


页面输出:view_fn
控制台输出: before_first_request
            before_request
            after_request
            teardown_request

第二次请求:


页面输出:view_fn
控制台输出: before_request
            after_request
            teardown_request

来源:https://segmentfault.com/a/1190000017482371

原文地址:https://www.cnblogs.com/qixidi/p/10164073.html

时间: 2024-10-02 21:30:54

Flask之请求钩子的相关文章

Flask中的请求钩子

请求勾子在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子. 请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子: before_first_request 在处理第一个请求前执行 before_request 在每次请求前执行 如果在某修饰的函数中返回了一个响应,视图函数将不

Flask框架 之上下文、请求钩子与Flask_Script

一.上下文 请求上下文:request与session 应用上下文:current_app与g:一次请求多个函数可以用它传参 @app.route("/") def index(): g.username = "yy" test() return "page" # 1.请求上下文:request与session # 2.应用上下文:current_app与g:一次请求多个函数可以用它传参 def test(): print(g.username)

Flask框架之异常处理和请求钩子

异常处理 抛出异常 在Flask框架中,我们使用abort()方法,抛出异常信息. 代码如下: from flask import abort # 抛出异常 @app.route('/error') def error(): return abort(404) 捕获和处理异常 在Flask框架中,我们使用@app.errorhandler()装饰器,实现异常的捕获和处理. 代码如下: # 捕获异常 @app.errorhandler(404) def error_action(e): # 必须接

flask请求钩子

请求钩子 作用: 可以 对请求的事件进?行行监听 , ?方便便开发者对请求的各阶段进?行行?一些?自定义处理理 before_request和after_request before_first_request和teardown_request 原文地址:https://www.cnblogs.com/oklizz/p/11370193.html

2.5.3、请求钩子

有时在处理请求之前或之后执行代码会很有用.例如,在请求开始时,我们可能需要创建数据库连接或者认证发起请求的用户.为了避免在每个视图函数中都使用重复的代码,Flask 提供了注册通用函数的功能,注册的函数可在请求被分发到视图函数之前或之后 调用. 请求钩子使用修饰器实现.Flask 支持以下 4 种钩子. ?before_first_request:注册一个函数,在处理第一个请求之前运行. ?before_request:注册一个函数,在每次请求之前运行. ?after_request:注册一个函

flask中请求勾子

请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: *在请求开始时,建立数据库连接; *在请求开始时,根据需求进行权限校验; *在请求结束时,指定数据的交互格式; 为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子. 请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子: ①before_first_request 在处理第一个请求前执行 ②before_request 在每次请求前执行 如果在某修饰的函数中返回了一个响应,

Flask关于请求表单的粗浅应用及理解+简单SQL语句温习

1.请求表单 请求表单的知识点是flask数据请求中很小的一部分,首先要了解一下GET和POST请求:http://www.w3school.com.cn/tags/html_ref_httpmethods.asp GET和POST从字面意义上理解,一个是"获取"一个是"发送" 说白了GET就是从指定的资源处来请求获取数据: 而POST就是向指定的资源来提交要被处理的数据: 而我们的请求表单,也就是request.form[],就是来获取POST请求中提交的表单数据

Flask 的 请求扩展 与 中间件

Flask 的 请求扩展 与 中间件 flask 可以通过 扩展(装饰器)来实现类似于django 中间件的功能 类似于django 的中间件, 在执行视图函数之前, 之后的执行某些功能 1 @app.before_first_request 执行一次,第一次请求结束,在第一批函数执行后 就不再执行(状态改为False) @app.before_first_request def before_first_request1(): print('before_first_request1') 2

Flask--四种请求钩子函数

请求钩子函数:请求前,请求后需要做的处理 @app.before_first_request-在第一次请求之前执行 @app.before_request-在每一次请求之前执行 @app.after_request-在每一次请求之后都会执行,并且将响应返回给前端 @app.teardown_request-在每一次请求后都会执行,如果出现异常,将异常传入视图函数 @app.before_first_request def first_request(): """在第一次请求之