用户可以在 Flask URL 参数中使用的限制值

Moe*_*tai 4 python flask

我有一个 Flask 视图,它接受一个 url 参数old_del,它只能接受 3 个值:“逗号”、“管道”和“制表符”。

@app.route('/jobs/change-file-del/<str:file_location>/<str:old_del>') 
def process_feed(file_location, old_del='tab'):
    ...
Run Code Online (Sandbox Code Playgroud)

如果用户包含无效值,我想返回一个错误old_del。我可以使用assert语句来完成此操作,但是有没有办法专门使用 Flask 来完成此操作?

dav*_*ism 8

有一个内置的anyURL 转换器。使用它来指定有效值。如果不匹配,您将收到 404。

@app.route('/jobs/change/<str:name>/<any(comma, pipe, tab):delim>')
def process_feed(name, delim='tab'):
    pass
Run Code Online (Sandbox Code Playgroud)

如果你想做更复杂的检查,你可以编写自己的转换器