Python: How to get multiple variables from a URL in Flask?

I am trying to get a few arguments from a URL in Flask. After reading this SO answer, I thought I could do it like this:

@app.route('/api/v1/getQ/', methods=['GET'])
def getQ(request):
    print request.args.get('a')
    print request.args.get('b')
    return "lalala"

But when I visit /api/v1/getQ/a=1&b=2, I get TypeError: getQ() takes exactly 1 argument (0 given). I tried other urls like /api/v1/getQ/?a=1&b=2and /api/v1/getQ?a=1&b=2, but to no avail.

Does anyone know what I'm doing wrong here? All tips are welcome!

+4
source share
2 answers

; , getQ python, , URL- .

request , . request :

from flask import request

@app.route('/api/v1/getQ/', methods=['GET'])
def getQ():
    print request.args.get('a')
    print request.args.get('b')
    return "lalala"

URL . , methods=['GET'] , .

+13

, URL- Flask:

--- curl ---

curl -i "localhost:5000/api/foo/?a=hello&b=world"  

--- ---

from flask import Flask, request

app = Flask(__name__)


@app.route('/api/foo/', methods=['GET'])
def foo():
    bar = request.args.to_dict()
    print bar
    return 'success', 200

if __name__ == '__main__':  
    app.run(debug=True)

--- ---

{'a': u'hello', 'b': u'world'}

P.S. ( ") curl, Linux cuz" &"

+3

Source: https://habr.com/ru/post/1527078/


All Articles