142 votes

Comment sont gérés les variables POST et GET en Python ?

En PHP, vous pouvez simplement utiliser pour poste et pour les variables GET (chaîne de requête). Quel est l’équivalent en Python ?

255voto

nosklo Points 75862

supposons que vous êtes l'affichage d'un formulaire html avec ceci:

<input type="text" name="username">

Si vous utilisez raw cgi:

import cgi
form = cgi.FieldStorage()
print form["username"]

Si à l'aide de Django, de Pylônes, de la Fiole ou de la Pyramide:

print request.GET['username'] # for GET form method
print request.POST['username'] # for POST form method

À L'Aide De Turbogears, Cherrypy:

from cherrypy import request
print request.params['username']

Web.py:

form = web.input()
print form.username

Werkzeug:

print request.form['username']

Si vous utilisez Cherrypy ou Turbogears, vous pouvez également définir votre gestionnaire de fonction prenant un paramètre directement:

def index(self, username):
    print username

Google App Engine:

class SomeHandler(webapp2.RequestHandler):
    def post(self):
        name = self.request.get('username') # this will get the value from the field named username
        self.response.write(name) # this will write on the document

Ainsi vous devrez choisir l'un de ces cadres.

31voto

Tom Points 802

J’ai trouvé la réponse de nosklo très complet et utile ! Pour ceux qui, comme moi, qui pourraient trouver accéder directement aux données demande raw aussi utile, je voudrais ajouter la façon de le faire :

29voto

Evan Fosmark Points 17732

Ils sont stockés dans l’objet de fieldstorage CGI.

1voto

Charlie Martin Points 62306

Cela dépend un peu de ce que vous utilisez comme un cadre CGI, mais ils sont disponibles dans les dictionnaires accessibles au programme. Je voudrais vous dire pour les docs, mais je ne reçois par le biais de python.org dès maintenant. Mais cette note sur mail.python.org vous donnera un premier pointeur. Regardez les libs CGI et URLLIB Python pour en savoir plus.

0voto

Ned Batchelder Points 128913

Python est seulement un langage, pour obtenir le GET et POST, les données, vous devez un framework web ou outil écrit en Python. Django est un, ainsi que Charlie, la cgi et urllib modules standard sont d’autres. Aussi disponible sont des pylônes, CherryPy, web.py, mod_python, Turbogears, fastcgi, etc, etc..

Dans Django, les fonctions de votre vue reçoivent un argument de demande qui a demande. OBTENIR et demander. Publier. Autres cadres vont le faire différemment.

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