所以,我想写这个Python代码,想要评估我得到的请求中的数据并采取相应的行动。我有许多不同的端点,我想要一种方法来访问所有请求的请求数据,而无需手动创建每个可能的端点。 有没有办法用Flask / Bottle做到这一点?各种代理
答案 0 :(得分:1)
您可以在使用@app.before_request
decorator的每个请求之前注册要调用的函数:
@app.before_request
def handle_every_request():
# ...
如果此函数返回除None
以外的任何内容,则它将用作响应,并且不会调用任何视图。这将允许您创建任意数量的路由选项。
另一种选择是使用request_started
signal,请参阅Signals documentation:
from flask import request_started
@request_started.connect_via(app)
def handle_every_request(sender, **kwargs):
# ...
以上内容会侦听特定Flask app
实例的请求。如果您想收听所有应用的所有请求,请使用@request_started.connect
。然而,信号只是听,他们不会路由。
通常,Flask和Bottle都是 WSGI 应用程序。 WSGI支持在WSGI middleware中包装这些应用程序,让您检查请求 - 响应对的每个输入和输出字节。这使您可以访问较低级别的数据。但是,您可以使用它来重写所请求的路径。