Соответствие конечной точки торнадо - PullRequest
0 голосов
/ 28 июня 2018

Я пытался найти документацию от торнадо о приоритетах сопоставления конечных точек, и я ничего не смог найти ... Интересно, каково ожидаемое поведение торнадо при сопоставлении конечных точек.

Пример:

def make_app():
    return tornado.web.Application(
            (r"/api/v1/tree/", test1),
            (
                r"/api/v1/?(?P<variable1>[A-Za-z0-9-]+)?/?(?P<variable2>[A-Za-z0-9-]+)?",
                test2,
            ),
            (r"/api/v1/garden/tree/" + r"([^/]+)/", test3)
            ]
     )

В частности, мне интересно, будут ли когда-либо вызываться 1-й и 3-й метод или второй вызов приведет к игнорированию остальных.

1 Ответ

0 голосов
/ 29 июня 2018

Все правила рассматриваются по порядку и используется первое совпадение. Так что в этом случае правило /api/v1/tree/ всегда будет учитываться. Правило /api/v1/garden/tree, вероятно, следует переместить над вторым правилом, хотя регулярное выражение трудно прочитать, чтобы определить, существует ли там реальный конфликт.

...