Plusieurs paramètres dans Flask
Comment écrire le flacon approute si j'ai plusieurs paramètres dans l'URL d'appel. Voici l'adresse de ma page, je suis d'appel de l'AJax
http://0.0.0.0:8888/createcm?summary=VVV&change=Feauure
J'étais en train d'écrire ma gourde approute comme ça.
@app.route('/test/<summary,change> ,methods=['GET']
Mais ce n'est pas de travail. Quelqu'un peut-il me suggérer comment parler de la approute?
source d'informationauteur user2058205 | 2013-03-03
Vous devez vous connecter pour publier un commentaire.
Les Routes ne correspondent pas à une chaîne de requête, qui est transmis à votre méthode directement.
Les autres réponses ont la bonne solution si vous souhaitez utiliser la requête params. Quelque chose comme:
Quelques notes. Si vous avez seulement besoin de l'appui des demandes, pas besoin d'inclure les méthodes dans votre parcours de décorateur.
Pour expliquer la requête params. Au-delà de tout le "?" dans votre exemple est appelé une requête param. Flacon va prendre ces requêtes paramètres de l'URL et de les placer dans un ImmutableDict. Vous pouvez y accéder par le
request.args
soit avec la clé, c'est à direrequest.args['summary']
ou avec la méthode get, moi et quelques autres commentateurs l'ont mentionné. Cela vous donne la possibilité de donner une valeur par défaut (comme Aucun), dans le cas où il n'est pas présent. Ce qui est commun pour requête de paramètres, car ils sont souvent en option.Maintenant, il ya une autre option qui vous apparemment ont tenté de faire, dans votre exemple, et qui consiste à utiliser un Chemin d'accès Param. Cela ressemblerait à:
L'url ici serait:
http://0.0.0.0:8888/createcm/VVV/Feauure
Avec VVV et Feauure transmis dans votre fonction en tant que variables.
Espère que ça aide.
Vous pouvez essayer ceci:
--- Demande Curl ---
--- flacon serveur---
---sortie de la console---
P. S. Ne pas omettre les guillemets(" ") avec curl option, ou il ne fonctionne pas sous Linux parce que "&"
Vous avez mélangé les paramètres d'URL et l'URL elle-même.
Vous pouvez obtenir l'accès pour les paramètres de l'URL avec
request.args.get("summary")
etrequest.args.get("change")
.Dans votre requérant url:
http://0.0.0.0:8888/createcm?summary=VVV&change=Feauure
le point de terminaison est/createcm
et?summary=VVV&change=Feauure
estargs
partie de la demande. ainsi, vous pouvez essayer ceci:httpie
exemples: