访问 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 中包装此类应用程序,让您检查请求-响应对的每个传入和传出字节。这使您可以访问较低级别的数据。但是,您可以使用它来重写请求的路径。