基于查询字符串参数重写http方法的金字塔插件。
pyramid_methodrewrite的Python项目详细描述
pyramid_methodrewrite包是一个金字塔插件,它添加了 重写活动http方法的“tween”(通过 request.method)到http头中提供的值,或者 查询字符串。其主要原因是允许客户伪造 除了get和post(如put和delete)之外的http方法的使用 在不符合要求的代理、浏览器或其他缺陷背后 限制可以发送哪些http方法的软件。
它通过查找X-HTTP-Method-Overridehttp头来实现 或者查询字符串或post数据中的_method参数, 如果该值是已知的http方法集,则将重写 活动请求的.method属性。标题名和 参数名是可配置的。如果指定了头值,则采用 优先于参数值。
例如,请求:
GET /path/to/resource?_method=OPTIONS HTTP/1.1
相当于(从应用程序的角度)到:
OPTIONS /path/to/resource HTTP/1.1
项目
安装
$ pip install pyramid-methodrewrite
用法
在ini文件中通过以下方式启用tween:
pyramid.includes=pyramid_methodrewrite
或通过:
defmain(global_config,**settings):# ...config.include('pyramid_methodrewrite')# ...
配置
可以在应用程序的 main节:
- methodrewrite.enabled:用于控制是否 应启用方法重写。默认值:True。
- methodrewrite.on:将导致 检查请求参数并可能使 改变。默认为(GET, POST)。
- methodrewrite.header:控制 请求的方法。默认为X-HTTP-Method-Override。如果 现在,头覆盖优先于参数 重写。
- methodrewrite.param:控制 请求的方法。默认为_method。
- methodrewrite.to:请求 可以重写为。如果设置为空,则不做任何限制 映射到可接受的或已知的方法。默认为 pyramid_methodrewrite.HTTP_METHODS。
请注意,所有方法名始终转换为大写。