519 votes

flask - comment obtenez-vous une chaîne de requête à partir de flask

Pas évident de la documentation du flasque sur la façon d'obtenir la chaîne de requête. Je suis nouvelle, j'ai regardé la documentation, je ne pouvais pas trouver!

Alors

 @app.route('/')
@app.route('/data')
def data():
    query_string=??????
    return render_template("data.html")
 

971voto

kracekumar Points 2653
from flask import request

@app.route('/data')
def data():
    # here we want to get the value of user (i.e. ?user=some-value)
    user = request.args.get('user')

291voto

Lyndsy Simon Points 1648

L'URL complète est disponible en request.url, et la chaîne de requête est disponible en request.query_string.

Voici un exemple:

from flask import request

@app.route('/adhoc_test/')
def adhoc_test():

    return request.query_string

Pour accéder à un individu connu param passé dans la chaîne de requête, vous pouvez utiliser request.args.get('param'). C'est la "bonne" façon de faire, autant que je sache.

ETA: Avant d'aller plus loin, vous devriez vous demander pourquoi vous voulez la chaîne de requête. Je n'ai jamais eu à tirer sur la chaîne brute - Flacon a des mécanismes pour y accéder de manière abstraite. Vous devez utiliser celles à moins d'avoir une raison de ne pas l'.

15voto

Simon Sapin Points 2472

Werkzeug / Flask a déjà tout analysé pour vous. Pas besoin de refaire le même travail avec urlparse:

 from flask import request

@app.route('/')
@app.route('/data')
def data():
    query_string = request.query_string  ## There is it
    return render_template("data.html")
 

La documentation complète relative aux objets requête et réponse se trouve dans Werkzeug: http://werkzeug.pocoo.org/docs/wrappers/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X