允许烧瓶路径中的所有方法类型

Tyi*_*ilo 11 python flask

如何允许路由接受所有类型的方法?

我不只是要路由的标准方法,如HEAD,GET,POST,OPTIONS,DELETEPUT.

我希望它也接受以下方法:FOOBAR,WHYISTHISMETHODNAMESOLONG其他所有可能的方法名称.

Chr*_*ert 14

要快速启用所有HTTP 请求方法,而不route需要手动向 Flask 添加规则url_map,请修改route定义如下:

from flask import request

HTTP_METHODS = ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH']


@app.route('/', methods=HTTP_METHODS)
def index():
  return request.method
Run Code Online (Sandbox Code Playgroud)


Daz*_*all 12

您可以直接更改url_map,方法是添加一个Rule没有方法:

from flask import Flask, request
import unittest
from werkzeug.routing import Rule

app = Flask(__name__)
app.url_map.add(Rule('/', endpoint='index'))

@app.endpoint('index')
def index():
    return request.method


class TestMethod(unittest.TestCase):

    def setUp(self):
        self.client = app.test_client()

    def test_custom_method(self):
        resp = self.client.open('/', method='BACON')
        self.assertEqual('BACON', resp.data)

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

methods

此规则适用的一系列http方法.如果未指定,则允许所有方法.