2009-05-19 10 views
2

J'ai un formulaire qui envoie des informations à l'un de mes gestionnaires. Mon gestionnaire vérifie les informations et doit ensuite POST ces informations à un tiers ET rediriger l'utilisateur vers cette page.Post de correction automatique de Google App Engine

Exemple de

class ExampleHandler(BaseRequestHandler): 
    """DocString here... 
    """ 
    def post(self): 
    day = int(self.request.get('day')) 
    checked_day = CheckDay(day) 
    if checked_day: 
     #Here is where I would like to redirect the user to the 3rd party -- but via a post as I will be submitting a form based on data in checked_day on their behalf. 
    else: 
     # Otherwise no post redirect is needed -- just a simple self.redirect. 
     self.redirect('/example') 

Avez-vous des conseils sur la façon dont je peux rediriger l'utilisateur vers la page où je l'ai soumis un formulaire?

J'aimerais idéalement un self.redirect() qui permette des POST à ​​des sites tiers, mais je ne crois pas que ce soit une option.

Mon but est de vérifier les données fournies avant de les envoyer à la 3ème partie. Est-ce que leurs autres options me manquent?

Répondre

1

Vous pouvez POSTER le formulaire et rediriger l'utilisateur vers une page, mais il doit s'agir d'opérations distinctes.

La méthode urlfetch.fetch() vous permet de définir la méthode POST pour comme ceci:

import urllib 

form_fields = { 
    "first_name": "Albert", 
    "last_name": "Johnson", 
    "email_address": "[email protected]" 
} 
form_data = urllib.urlencode(form_fields) 
headers = {'Content-Type': 'application/x-www-form-urlencoded'} 
result = urlfetch.fetch(url=url, 
         payload=form_data, 
         method=urlfetch.POST, 
         headers=headers) 

L'exemple ci-dessus est de la URL Fetch Python API Overview.

+0

Merci. Ceci est utile Dans mon cas, je ne peux pas soumettre le formulaire et rediriger l'utilisateur - car l'utilisateur doit interagir avec la page qui est renvoyée à partir du formulaire soumis. Vous répondez à la question racine, merci encore. – Wasauce