2016-10-05 39 views
0

我有一个网站,在谷歌App Engine上运行的联系表单。提交后,我想重定向并向用户显示一条消息,让他知道消息已发送,这可能是一条警告消息或向html标签添加一个类。我怎样才能做到这一点?GAE python:重定向后成功消息或添加HTML类

我的Python文件看起来像这样:

import webapp2 
import jinja2 
import os 
from google.appengine.api import mail 

jinja_environment = jinja2.Environment(autoescape=True,loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates'))) 

class index(webapp2.RequestHandler): 
    def get(self): 
     template = jinja_environment.get_template('index.html') 
     self.response.write(template.render()) 

    def post(self): 
     vorname=self.request.get("vorname") 
     ... 
     message=mail.EmailMessage(sender="...",subject="...") 

     if not mail.is_email_valid(email): 
      self.response.out.write("Wrong email! Check again!") 

     message.to="..." 
     message.body=""" Neue Nachricht erhalten: 
     Vorname: %s 
     ... %(vorname,...) 

     self.redirect('/#Kontakt') 

app = webapp2.WSGIApplication([('/', index)], debug=True) 

我已经在我的html文件试过这样:

<script> 
    function sentAlert() { 
     alert("Nachricht wurde gesendet"); 
    } 
</script> 

<div class="submit"> 
    <input type="submit" value="Senden" onsubmit="return sentAlert()" 
    id="button-blue"/> 
</div> 

但它重定向之前做它,因此无法正常工作。 有人有一个想法如何做到这一点?

+0

你为什么重定向。在帖子中呈现gesendet页面。 – voscausa

+0

这是一个好主意,但因为我想只用一个额外的句子返回到主页面,所以我首选询问是否有人有这样的想法 – Neli

+0

您可以在帖子中再次呈现主页面,但现在与gesendet消息的模板值 – voscausa

回答

0

在重定向请求之后,将发送与发送电子邮件的邮件不同的

所以,你需要坚持有关电子邮件的信息跨请求被发送POST请求处理程序代码保存它,并在随后的GET请求处理程序代码检索它(是它重定向一个或其他任何一个那件事)。

举例来说,您可以使用用户的会话(如果您已有一个会话,请参阅Passing data between pages in a redirect() function in Google App Engine)或GAE的内存缓存/数据存储/ GCS。

一旦检索到信息,您可以以任何方式使用它。