带多个可选参数的Flask路径选择

2024-06-08 22:24:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一条叫做搜索的路线:@应用程序路径('/search') 是否可以添加多个可选参数?示例:

@app.route('/search/pg/<int:pg>')
@app.route('/search/types/<types>')
@app.route('/search/number/<int:number>')
@app.route('/search/subject/<subject>')

URL中的顺序不重要,所以我可以调用/search/pg/2,或/search/subject/MySubject/pg/2或/search/types/posts/subject/MySubject/pg/2

我试过了,但它只适用于完整路径和所有参数:

^{pr2}$

Tags: 路径app应用程序url示例numbersearch参数
2条回答

您可以在URL中使用filter而不是“sub resources”。 然后,您可以在请求中按任意顺序放置搜索参数: /search?pg=<pg>&types=<types>

在flask view函数中,您可以从请求对象检索参数:

@app.route('/search/')
def search():
    pg = request.args.get('pg')
    ...

@David,我设计了一个包,叫做flask_optional_routes。代码位于:https://github.com/sudouser2010/flask_optional_routes。在

from flask import Flask

from flask_optional_routes import OptionalRoutes


app = Flask(__name__)
optional = OptionalRoutes(app)

@optional.routes('/<user_id>/<user_name>?/')
def foobar(user_id, user_name=None):
    return 'it worked!'

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000)

相关问题 更多 >