17 lines
531 B
Python
17 lines
531 B
Python
from werkzeug import url_decode
|
|
|
|
|
|
class MethodRewriteMiddleware(object):
|
|
|
|
def __init__(self, app):
|
|
self.app = app
|
|
|
|
def __call__(self, environ, start_response):
|
|
if 'METHOD_OVERRIDE' in environ.get('QUERY_STRING', ''):
|
|
args = url_decode(environ['QUERY_STRING'])
|
|
method = args.get('__METHOD_OVERRIDE__')
|
|
if method:
|
|
method = method.encode('ascii', 'replace')
|
|
environ['REQUEST_METHOD'] = method
|
|
return self.app(environ, start_response)
|