Flask Urls中的问号用于路由

Ami*_*tad 5 routing werkzeug flask python-2.7

所以,我在Flask中有以下路线:

@app.route("/menu-card/<google_place_id>", methods=['GET']) 
Run Code Online (Sandbox Code Playgroud)

在导航到http://127.0.0.1:5000/menu-card/ChIJAxXhIUMUrjsR5QOqVsQjCCI时,我得到了正确的回复.

但是,我尝试更改URL模式,如下所示:

@app.route("/menu-card?id=<google_place_id>", methods=['GET'])
Run Code Online (Sandbox Code Playgroud)

在导航到http://127.0.0.1:5000/menu-card?id=ChIJAxXhIUMUrjsR5QOqVsQjCCI时,我现在收到404错误.我究竟做错了什么 ?

Chr*_*oba 8

后面的部分?查询字符串,您可以使用它request.args.所以,你的路线应该是:

@app.route("/menu-card", methods=['GET'])
Run Code Online (Sandbox Code Playgroud)

然后你可以使用以下方式获取id:

google_place_id = request.args.get('id', None)
Run Code Online (Sandbox Code Playgroud)

None默认值在哪里,如果id未包含在网址中.您必须检查它是否不等于None确保它已通过.

搜索快速入门页面request.args以查看另一个示例.