tornado - Tornado 端点匹配
问题描述
我一直试图从龙卷风中找到一些关于端点匹配优先级的文档,但我找不到任何东西。我想知道龙卷风进行端点匹配的预期行为是什么。
例子:
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)
]
)
特别是我想知道是否会调用第一个和第三个方法,或者第二个调用是否会使其他方法被忽略。
解决方案
所有规则都按顺序考虑,并使用第一个匹配项。因此,在这种情况下,/api/v1/tree/
将始终考虑该规则。这条/api/v1/garden/tree
规则可能应该移到第二条规则之上,尽管很难阅读正则表达式来确定那里是否存在真正的冲突。
推荐阅读
- c++ - 多线程程序比单线程程序慢
- php - 使用 Monolog Logger 将输出发送到 Sentry
- m3u8 - ts文件解密后如何让m3u8文件正常播放
- python - why does my logger not inherit handlers from root logger
- amazon-web-services - AWS ECS CLI Doesn't Attach EC2 Instance To Cluster
- javascript - 从具有 (x,y) 坐标的列表中获取项目
- python - PyGears How to make counter
- java - How to validate Json text which is not having any property name or key?
- google-apps-script - 范围的坐标在工作表的尺寸之外
- mysql - 递归 SELECT 查询