Python flask网络请求拦截器before_request,after_request,teardown_request

一、释义
before_request :在请求收到之前绑定一个函数做一些事情。
after_request: 每一个请求之后绑定一个函数,如果请求没有异常。
teardown_request: 每一个请求之后绑定一个函数,即使遇到了异常。

response中的属性和方法如下
headers
status
status_code
data
get_json(force=False, silent=False, cache=True)
is_json
max_cookie_size
mimetype
set_cookie(key, value=”, max_age=None, expires=None, path=’/’, domain=None, secure=False, httponly=False, samesite=None)

二、使用
在最路由之前添加before_request,打印请求参数可以起到“拦截器”的作用

# @app.before_request 等同下面的 application.before_request

@application.before_request
def print_request_info():
    print("请求地址:" + str(request.path))
    print("请求方法:" + str(request.method))
    print("---请求headers--start--")
    print(str(request.headers).rstrip())
    print("---请求headers--end----")
    print("GET参数:" + str(request.args))
    print("POST参数:" + str(request.form))
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask 中,使用 `before_first_request` 装饰器定义的函数中创建的变量是全局变量,可以在应用程序的任何地方使用。但是需要注意的是,这些变量在多线程环境下可能会出现线程安全问题,需要进行适当的线程安全处理。 具体来说,如果你在 `before_first_request` 函数中创建的变量需要被其他请求调用,可以将其保存在 Flask 应用实例对象的一个属性中,然后在其他请求中使用这个属性。例如: ```python from flask import Flask, request app = Flask(__name__) @app.before_first_request def init_global_variable(): # 定义一个全局变量并保存在 Flask 应用实例对象的属性中 app.some_variable = 'Hello, World!' @app.route('/') def index(): # 在请求中使用保存在 Flask 应用实例对象中的全局变量 return app.some_variable @app.route('/set') def set_variable(): # 在请求中修改保存在 Flask 应用实例对象中的全局变量 app.some_variable = request.args.get('variable') return 'OK' ``` 在上面的代码中,`init_global_variable` 函数在整个 Flask 项目启动前运行一次,并在其中创建了一个全局变量 `app.some_variable`。在 `index` 视图函数中,可以直接使用这个全局变量,并返回它的值。在 `set_variable` 视图函数中,可以修改这个全局变量的值。 需要注意的是,在多线程环境下,对于一些需要读写的全局变量,可能需要进行适当的线程安全处理,例如使用锁来保证数据的一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值