flask路径模式匹配顺序
我有以下路线:
- /
/close - /
/ 如果我向发出请求
http://localhost:5000/example-poll-key/close
,Flask将其匹配为模式2,将字符串“ close”分配给<participant_key>URL
参数。如何使<poll_key>/close
路线在<participant_key>
路线之前匹配?
回答:
我错过了match_compare_key
:
- 对于static端点:
(True, -2, [(0, -6), (1, 200)])
- 为
/<poll_key>/close:(True, -2, [(1, 100), (0, -5)])
- 为
/<poll_key>/<participant_key>:(True, -2, [(1, 100), (1, 100)])
这意味着的static
优先级高于其他优先级,并且close
优先级高于<participant_key>
。
例:
from flask import Flaskapp = Flask(__name__)
app.add_url_rule('/<poll_key>/close', 'close',
lambda **kwargs: 'close\t' + str(kwargs))
app.add_url_rule('/<poll_key>/<participant_key>', 'p_key',
lambda **kwargs: 'p_key\t' + str(kwargs))
client = app.test_client()
print client.get('/example-poll-key/close').data
print client.get('/example-poll-key/example-participant-key').data
输出:
close {'poll_key': u'example-poll-key'}p_key {'participant_key': u'example-participant-key', 'poll_key': u'example-poll-key'}
看起来这是正确的行为。
以上是 flask路径模式匹配顺序 的全部内容, 来源链接: utcz.com/qa/431022.html