访问 Flask 接收到的所有请求的请求数据
Accessing request data of all requests that is being received with Flask
所以,我想编写此 Python 代码来评估我收到的请求中的数据并采取相应行动。我有许多不同的端点,我想要一种方法来访问所有请求的请求数据,而无需手动创建每个可能的端点。
有没有办法用 Flask/Bottle 做到这一点?某种代理
您可以使用 @app.before_request
decorator:
注册一个在每次请求之前调用的函数
@app.before_request
def handle_every_request():
# ...
如果此函数 returns 除了 None
之外的任何其他内容,它将用作响应并且不会调用任何视图。这将使您可以创建任意数量的路由选项。
另一种选择是使用 request_started
signal, see the Signals documentation:
from flask import request_started
@request_started.connect_via(app)
def handle_every_request(sender, **kwargs):
# ...
以上监听特定 Flask app
实例的请求。如果您想收听所有应用程序的 all 请求,请使用 @request_started.connect
。然而,信号只听,不路由。
一般来说,Flask和Bottle都是WSGI应用。 WSGI 支持在 WSGI middleware 中包装此类应用程序,让您检查请求-响应对的每个传入和传出字节。这使您可以访问较低级别的数据。但是,您可以使用它来重写请求的路径。
所以,我想编写此 Python 代码来评估我收到的请求中的数据并采取相应行动。我有许多不同的端点,我想要一种方法来访问所有请求的请求数据,而无需手动创建每个可能的端点。 有没有办法用 Flask/Bottle 做到这一点?某种代理
您可以使用 @app.before_request
decorator:
@app.before_request
def handle_every_request():
# ...
如果此函数 returns 除了 None
之外的任何其他内容,它将用作响应并且不会调用任何视图。这将使您可以创建任意数量的路由选项。
另一种选择是使用 request_started
signal, see the Signals documentation:
from flask import request_started
@request_started.connect_via(app)
def handle_every_request(sender, **kwargs):
# ...
以上监听特定 Flask app
实例的请求。如果您想收听所有应用程序的 all 请求,请使用 @request_started.connect
。然而,信号只听,不路由。
一般来说,Flask和Bottle都是WSGI应用。 WSGI 支持在 WSGI middleware 中包装此类应用程序,让您检查请求-响应对的每个传入和传出字节。这使您可以访问较低级别的数据。但是,您可以使用它来重写请求的路径。