web-dev-qa-db-fra.com

Comment obtenir des valeurs de paramètres de requête get en flacon?

La réponse que j'ai trouvée sur le Web est d'utiliser request.args.get. Cependant, je ne parviens pas à le faire fonctionner. J'ai l'exemple simple suivant:

from flask import Flask
app = Flask(__name__)

@app.route("/hello")
def hello():
    print request.args['x']
    return "Hello World!"

if __== "__main__":
    app.run()

Je vais à la 127.0.0.1:5000/hello?x=2 dans mon navigateur et par conséquent, je reçois:

Internal Server Error

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Qu'est-ce que je fais mal?

44
Roman

La réponse simple est que vous n’avez pas importé l’objet global request à partir du package flask.

from flask import Flask, request

Ceci est facile à déterminer vous-même en exécutant le serveur de développement en mode débogage en faisant

app.run(debug=True)

Cela vous donnera un stacktrace comprenant:

print request.args['x']
NameError: global name 'request' is not defined
76
sberry

http: // localhost: 5000/api/iterators/opel/next? n = 5

Pour quelque chose comme le cas avant

from flask import Flask, request
n = request.args.get("n")

Peut faire l'affaire

8
Joe9008