AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
### 导航 - [索引](# "总目录") - [下一页](# "请求内容校验码") | - [上一页](# "延迟请求回调") | - [Flask 0.10.1 文档](#) » - [Flask 代码模式](#) » # 添加 HTTP Method Overrides 某些 HTTP 代理不支持任意的 HTTP 方法或更新的 HTTP 方法(比如 PATCH)。这种情况下,通过另一种完全违背协议的 HTTP 方法来“代理” HTTP 方法是可行的。 这个方法使客户端发出 HTTP POST 请求并设置 X-HTTP-Method-Override标头的值为想要的 HTTP 方法(比如 PATCH )。 这很容易通过一个 HTTP 中间件来完成: ~~~ class HTTPMethodOverrideMiddleware(object): allowed_methods = frozenset([ 'GET', 'HEAD', 'POST', 'DELETE', 'PUT', 'PATCH', 'OPTIONS' ]) bodyless_methods = frozenset(['GET', 'HEAD', 'OPTIONS', 'DELETE']) def __init__(self, app): self.app = app def __call__(self, environ, start_response): method = environ.get('HTTP_X_HTTP_METHOD_OVERRIDE', '').upper() if method in self.allowed_methods: method = method.encode('ascii', 'replace') environ['REQUEST_METHOD'] = method if method in self.bodyless_methods: environ['CONTENT_LENGTH'] = '0' return self.app(environ, start_response) ~~~ 在 Flask 中使用它的必要步骤见下: ~~~ from flask import Flask app = Flask(__name__) app.wsgi_app = HTTPMethodOverrideMiddleware(app.wsgi_app) ~~~ © 版权所有 2013, Armin Ronacher.