我一直在尝试从龙卷风中找到一些有关端点匹配优先级的文档,但是我什么也找不到。我不知道龙卷风进行端点匹配的预期行为是什么。
示例:
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个方法,或者第二个调用是否会使其他方法被忽略。
答案 0 :(得分:1)
按顺序考虑所有规则,并使用第一个匹配项。因此,在这种情况下,将始终考虑/api/v1/tree/
规则。 /api/v1/garden/tree
规则可能应该移到第二条规则之上,尽管很难读取正则表达式以确定那里是否存在真正的冲突。