web-dev-qa-db-fra.com

Comment récupérer des vars GET dans une application pour bouteilles en python

J'essaie de créer une simple API REST à l'aide de l'application de bouteille Python. Je ne parviens pas à récupérer les variables GET à partir de l'objet global de demande. Any suggestions pour récupérer ceci depuis la requête GET?

16
Maanas Royy

Ils sont stockés dans l'objet request.query.

http://bottlepy.org/docs/dev/tutorial.html#query-variables

Il semble que vous puissiez également y accéder en traitant l'attribut request.query comme un dictionnaire:

request.query['city']

Donc, dict(request.query) créerait un dictionnaire de tous les paramètres de la requête.

Comme @mklauber le fait remarquer, cela ne fonctionnera pas pour les caractères multi-octets. Il semble que la meilleure méthode est la suivante:

my_dict = request.query.decode()
22
Nathan Villaescusa

Si vous les voulez tous:

dicc = parse_qs(request.query_string)

Si vous en voulez un:

one = request.GET.get('one', '').strip()
5
f p

Pouvez-vous essayer ceci s'il vous plaît:

Pour cet exemple: http: // localhost: 8080/command? Nom_param = valeur_param

Dans votre code: 

param_value = request.query.param_name
0
madkabx

des docs

name = request.cookies.name
# is a shortcut for:
name = request.cookies.getunicode('name') # encoding='utf-8' (default)
# which basically does this:
try:
    name = request.cookies.get('name', '').decode('utf-8')
except UnicodeError:
    name = u''

Donc, vous préférerez peut-être utiliser l'attribut accessor (request.query.nom_variable) à request.query.get ('nom_variable') 

Un autre point est que vous pouvez utiliser request.params.nom_variable qui fonctionne à la fois pour les méthodes GET et POST, plutôt que d’échanger demande.query.nom_variable ou request.forms.nom_variable selon GET/POST.

0
comte