如何使用python、Flask和命令行传递URL参数

如何使用python、Flask和命令行传递URL参数,python,http,command-line,flask,Python,Http,Command Line,Flask,使用request.args.get传递URL参数时遇到很多问题 我的代码如下: from flask import Flask, request app= Flask(__name__) @app.route('/post?id=post_id', methods=["GET"]) def show_post(): post_id=1232 return request.args.get('post_id') if __name__=="__main__": ap

使用request.args.get传递URL参数时遇到很多问题

我的代码如下:

from flask import Flask, request
app= Flask(__name__)

@app.route('/post?id=post_id', methods=["GET"])
def show_post():
    post_id=1232
    return request.args.get('post_id')

if __name__=="__main__":
     app.run(host='0.0.0.0')
保存后,我总是在命令行中键入python filename.py,在命令行中查看Running on(按CTRL+C退出)作为返回,然后在chrome中键入url(),查看它是否返回1232,但它不会返回!请帮忙。

就是您要找的

@app.route('/post', methods=["GET"])
def show_post()
    post_id = request.args.get('id')

request.args是获取所有get参数并像这样构造
MultiDict([('id','1232'),]),因此使用
get
可以
get
id

您应该将查询参数保留在路由之外,因为它们不是路由的一部分

@app.route('/post', methods=['GET'])
def show_post():
    post_id = request.args.get('id')
    return post_id

request.args
是一个包含URL中传递的所有查询参数的字典。

那么URL是什么呢?非常感谢你!URL仍然是http://:5000/post?id=1232
id
是一个查询参数,将出现在
请求.args
字典中,其值为
1232
。注意:我编辑了上面的答案以更正参数的名称。因此基本上,request.args.get('id')会自动将参数插入url中?不,一点也不。您可以输入URL
http://127.0.0.1:5000/post?id=1232
。Flask将切断查询字符串,即
?id=1232
,并与实际路径匹配,即
/post
。该路径被路由到
show\u post
功能
request.args
是一个包含随URL一起传递的所有查询参数的字典,在本例中,URL是键
id
和值
1232
request.args
这是一本类似这样的字典:
{“id”:“1232”}
@SAS请看我的答案也谢谢!那么URL是什么呢?好的,酷D非常感谢你!你的回答同样有用!现在我不仅可以使用你们提供的代码,还可以理解它在做什么:)