2015-08-24 4 views
0

Je souhaite passer un objet d'une page Web ('localhost/form') à une autre page Web de redirection ('localhost/redirect') en utilisant Tornado. Mes extraits de code ressemble à quelque chose comme ça ..Transmission d'une variable d'un site Web à un autre sur Tornado

class FormHandler (BaseHandler): 
def get(self): 
     redirect_page='localhost/redirect' 
     some_variable='a variable that can only be generated in FormHandler' 
     self.write('<button id="Redirect" type="button">Redirect</button><br><script> document.getElementById("Redirect").onclick = function() {location.href ="'redirect_page'";};</script>') 


class RedirectHander (BaseHandler): 
     self.write('The variable passed was'+some_variable) 

def make_app(): 
return Application(
    [ 
     url('/', BaseHandler, { "var":"nothing" }, name="root"), # this is for the root! :) 
     url('/form', FormHandler, { "var":"initialize this!" }, name = "forlorn"), 
     url('/redirect', RedirectHandler, { "var":"initialize this!" }, name = "forlorn"), 
    ], 
    # settings: 
    debug = True, 
) 
+0

Quelle est exactement la question? Avez-vous des erreurs? – PhilMasterG

+0

Comment passer une variable de localhost/form à localhost/redirect? – user3776598

+0

Pas d'erreur. Je ne sais pas comment le faire .. – user3776598

Répondre

1

Comme une redirection est traitée du côté client par les données du navigateur transmises lors d'une redirection doit être fait dans l'URL ou par cookie.

Utilisez des expressions régulières dans votre URL pour passer des options dans l'url: http://www.tornadoweb.org/en/stable/web.html#tornado.web.URLSpec

Utilisez RequestHandler.get_argument pour obtenir des options de chaîne de requête

Si vous avez beaucoup de données pour passer entre les deux, est d'abord c'est la bonne chose à faire. Deuxièmement, si c'est le cas, vous pouvez placer les données dans un endroit sûr du côté du serveur (une base de données par exemple), puis dans la redirection passer un identifiant pour retrouver l'enregistrement.

+0

Est-ce que Redirect Handler sait ce qu'est some_variable? Comment puis-je le passer correctement? – user3776598

+0

Dites par exemple que je veux passer un objet python d'une URL à l'autre, comment puis-je faire cela? – user3776598