2016-10-05 34 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。

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