2016-10-05 6 views
0

Google App Engineで実行中の連絡先フォームのウェブサイトがあります。送信した後、私はリダイレクトして、メッセージが送信されたことを彼に知らせるためにユーザーにメッセージを表示したいと思います。これは、警告メッセージまたはhtmlタグにクラスを追加することができます。どうやってやるの?GAE python:リダイレクト後に成功メッセージが表示されるか、HTMLクラスが追加される

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> 

を、それは動作しませんので、リダイレクトする前にそれをしないと

私のpythonファイルには、次のようになります。 誰かがそれを行う方法を知っていますか?

+0

なぜリダイレクトしますか?あなたの投稿のgesendetページをレンダリングします。 – voscausa

+0

これはいい考えですが、私は1つの文章でメインページに戻っていきたいので、誰かがそのようにするアイデアを持っているかどうか聞いてみることをお勧めします – Neli

+0

メインページをあなたの投稿に再描画できますgesendetメッセージのテンプレート値 – voscausa

答えて

0

リダイレクト後にメールが送信されたPOSTよりと異なるが送信されます。

は、リクエスト全体で送信される電子メールに関する情報をPOSTリクエストハンドラコードに保存し、それを後続のGETリクエストハンドラコード(リダイレクトされたものかそれ以外のものかその問題)。

たとえば、ユーザーのセッション(既にある場合はPassing data between pages in a redirect() function in Google App Engineを参照)またはGAEのmemcache/datastore/GCSを使用して情報を保持することができます。

情報が取得されたら、希望どおりに使用できます。

関連する問題