2010-01-27 3 views
2

Lorsque vous utilisez webapp depuis Google App Engine, comment puis-je distinguer POST et GET? Lequel a la priorité et comment puis-je les séparer? Un morceau de code ci-dessous montre la façon d'obtenir une valeur de champ POST/GET:Google App Engine: un moyen facile de travailler avec GET, POST et les cookies

class AddWordHandler(webapp.RequestHandler): 
    def post(self): 
     theWord = str(self.request.get('theWord', default_value="no")) 

Je voudrais demander plus: Comment gérer GET, POST et les cookies en douceur et en toute transparence sans écrire votre propre analyseur?

Répondre

4

À chaque requête, le framework webapp appelle la méthode nommée après la méthode HTTP. Ainsi, les requêtes GET appellent 'get()', les requêtes POST appellent 'post()', et ainsi de suite. Pour récupérer les valeurs soumises, vous pouvez utiliser self.request.get(), qui fonctionne à la fois pour les données de post-traitement et de chaîne de requête, ou self.request.GET et self.request.POST qui sont multidictées pour les données de chaîne de requête et les données publiées, respectivement.

L'objet de requête de la structure webapp est basé sur celui du webob, donc pour plus d'informations à ce sujet et comment gérer les cookies, voir le webob documentation.

+0

Bonjour Nick. En fait, si vous avez suivi la documentation GAE, il est recommandé d'utiliser self.request.get() pour obtenir des valeurs lors de l'utilisation de la méthode POST. – Viet

+0

@Viet: Non, c'est permis - vous pouvez l'utiliser pour les deux méthodes - mais il n'y a absolument aucun problème avec l'utilisation de self.request.GET et de self.request.POST. –

+0

Merci Nick. J'ai essayé et ça a marché. Je trouve que self.request.get() qui est plutôt confus. – Viet