Ce n'est pas évident dans la documentation de la fiole 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")
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')
L'URL complète est disponible en tant que request.url
et la chaîne de requête est disponible en tant que 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 paramètre connu connu passé dans la chaîne de requête, vous pouvez utiliser request.args.get('param')
. C'est la "bonne" façon de le 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 dans la chaîne brute - Flask dispose de mécanismes pour y accéder de manière abstraite. Vous devriez les utiliser sauf si vous avez une raison impérieuse de ne pas le faire.
Nous pouvons le faire en utilisant request.query_string.
Exemple:
Permet de considérer view.py
from my_script import get_url_params
@app.route('/web_url/', methods=('get', 'post'))
def get_url_params_index():
return Response(get_url_params())
Vous le rendez plus modulaire en utilisant Flask Blueprints - http://flask.pocoo.org/docs/0.10/blueprints/
Considérons que le prénom est transmis en tant que partie de la chaîne de requête/web_url/?first_name=john
## here is my_script.py
## import required flask packages
from flask import request
def get_url_params():
## you might further need to format the URL params through escape.
firstName = request.args.get('first_name')
return firstName
Comme vous le voyez, ce n’est qu’un petit exemple: vous pouvez extraire plusieurs valeurs + les formater et les utiliser ou les transmettre au fichier modèle.
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 des objets requête et réponse se trouve dans Werkzeug: http://werkzeug.pocoo.org/docs/wrappers/
Je suis venu ici à la recherche de la chaîne de requête, pas comment obtenir des valeurs de la chaîne de requête.
request.query_string
renvoie les paramètres d'URL sous forme de chaîne d'octets bruts (Réf 1).
Exemple d'utilisation de request.query_string
:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['GET'])
def get_query_string():
return request.query_string
if __== '__main__':
app.run(debug=True)
Sortie:
Références:
Essayez comme ceci pour la chaîne de requête:
from flask import Flask, request
app = Flask(__name__)
@app.route('/parameters', methods=['GET'])
def query_strings():
args1 = request.args['args1']
args2 = request.args['args2']
args3 = request.args['args3']
return '''<h1>The Query String are...{}:{}:{}</h1>''' .format(args1,args2,args3)
if __== '__main__':
app.run(debug=True)
Cela peut être fait avec request.args.get()
. Par exemple, si votre chaîne de requête a un champ date
, vous pouvez y accéder à l'aide de
date = request.args.get('date')
N'oubliez pas d'ajouter "request
" à la liste des importations depuis le flacon, , C'est-à-dire.
from flask import request