How to pass a URL parameter using python, Flask, and the command line
15,174
Solution 1
You should leave the query parameters out of the route as they aren't part of it.
@app.route('/post', methods=['GET'])
def show_post():
post_id = request.args.get('id')
return post_id
request.args
is a dictionary containing all of the query parameters passed in the URL.
Solution 2
request.args
is what you are looking for.
@app.route('/post', methods=["GET"])
def show_post()
post_id = request.args.get('id')
request.args is get all the GET parameters and construct Multidict
like this MultiDict([('id', '1232'),])
so using get
you can get
the id
Related videos on Youtube
Author by
SAS
Updated on June 04, 2022Comments
-
SAS almost 2 years
I am having a lot of trouble passing a URL parameter using request.args.get.
My code is the following:
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')
After saving, I always type python filename.py in the command line, see Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) as the return on the command line, and then type in the url (http://ip_addres:5000/post?id=1232) in chrome to see if it will return 1232, but it won't do it! Please help.
-
SAS over 7 yearsWhat would the URL be then, please? Thank you so much!
-
SAS over 7 yearsThank you so much! What would the URL be then, please?
-
bdjett over 7 yearsThe URL would still be
http://<IP Address>:5000/post?id=1232
.id
is a query parameter that will appear in therequest.args
dictionary with the value1232
. Note I edited the above answer to correct the name of the parameter. -
SAS over 7 yearsso basically, the request.args.get('id') automatically inserts the param inside the url?
-
bdjett over 7 yearsNo, not at all. You enter the URL
http://127.0.0.1:5000/post?id=1232
. Flask will cut off the query string, which is?id=1232
and match on the actual path, which is/post
. That path gets routed to theshow_post
function.request.args
is a dictionary containing all of the query parameters that were passed along with the URL, which in this case is the keyid
and the value1232
.request.args
here will be a dictionary that looks like this:{"id": "1232"}
. -
Raja Simon over 7 years@SAS please see my answer also
-
SAS over 7 yearsOkay, cool!:D Thank you so much! Your answer was equally helpful! Now I not only can use the code that y'all offered, but also understand what it is doing:)