我很难在路由发生之前修改 Flask 请求对象。
我的 API 模块(不是我的整个 Flask 应用程序)依赖于通过发送特殊标头来伪造 PUT 和 DELETE 操作。在 Flask 进行路由之前,我需要检查“-Method”标头的内容并相应地修改 Flask Request 对象。
这是我想要工作的简短、pythonic、显式的代码:
@api.before_request
def method_scrubbing():
if request.headers.has_key('-Method'):
method = request.headers['-Method'].upper()
tagalog.log("in before_request, -Method = {}".format(method), 'force')
if method not in ['PUT', 'DELETE']:
raise ApiMethodException(method)
else:
request.method = method
...但我从 werkzeug 收到“只读属性”错误:http: //drktd.com/74yk
我在http://flask.pocoo.org/snippets/38/上似乎看到了 Armin 的帖子,但这似乎是应用程序范围的(不特定于模块)。