2012-06-19 51 views
1

我的應用程序,數據存儲,webapp2和特定於表單的「響應」都可以工作:)但我需要加載頁面而不顯示上一個訪問者的查詢結果。在提交表單後,我只需要當前表單提交者的查詢結果。這是一個會話還是頭文件解決方案,還是我可以編輯GqlQuery來完成這個任務?僅針對會話的GqlQuery結果?

messages = db.GqlQuery("SELECT * " 
           "FROM Visitor " 
           "ORDER BY date DESC LIMIT 1") #obviously shows previous form submit 
     for message in messages: 
      if message.name == "" or message.mood == "": 
       self.response.out.write("<div class='textright'>Type name and select.</div>") 
       self.response.out.write("</body></html>") 
      elif message.mood == "bad" and message.name != "": 
       self.response.out.write("<body><html>") 
       self.response.out.write("<div class='textright'>Stay the course 

^^最後一部分是我的「響應」,需要出現後才當前訪問者提交表單。

+0

我不知道如何從我以前的答案中得到「使用模板」是讓您保持在同一頁面上的解決方案。這不是我所說的。 –

+0

如果您遇到語法錯誤,則需要向我們顯示堆棧跟蹤以及導致它的代碼。 –

+0

尼克,請你看看我上面修改過的代碼嗎? – p1nesap

回答

1

我強烈建議您通過Getting Started,特別是templates部分,直到您明白它是如何工作的。

但是你如果你只是想在行動中看到你的榜樣試試這個(read more):

class Process(webapp.RequestHandler): 
    def post(self): 
    name = self.request.get("name") 
    mood = self.request.get("mood") 

    if mood == "bad" and name != "": 
     self.response.out.write("<html><body>") 
     self.response.out.write("<h1>Welcome to the Internet!</h1>") 
     self.response.out.write("<p>My mood is %s and my name is %s</p>" % (mood, name)) 
     self.response.out.write("</body></html>") 
    else: 
     self.response.out.write("<html><body>") 
     self.response.out.write("<h1>Welcome to the Internet anyway!</h1>") 
     self.response.out.write("</body></html>") 

而且從來沒有在你的GAE應用程序中使用print,使用logger而不是用於調試和更多。

+0

Lipis,感謝您的代碼和鏈接。我想我很接近。我印象深刻print是針對非class .py腳本的,而s.r.o.w.是爲了上課嗎? GAE/API空間中有很多頁面,這有助於讓某個人鏈接到精確的文檔。 – p1nesap

+0

上面的代碼與在數據存儲中應用東西無關。您必須至少通過入門指南兩次..並閱讀每個部分http://goo.gl/rRucs – Lipis

+0

@pavl將其更改爲'/process /'最後加正斜槓......因爲很有可能你在'

'中有'action =「。」'而不是完整的url ... – Lipis

1

如果你想發出值進行調試,特別是如果你想要的是寫一個<html>標籤之前,嘗試

self.response.out.write("<!-- name: %s -->" % self.request.get("name")) 

否則,瀏覽器可能會感到困惑。

print從處理程序將永遠不會到你期望的。

在你的代碼片段中,你沒有顯示出var7var9來自哪裏。

我不知道,後/。把表單值數據存儲自動重定向用戶到新的頁面

我想你誤會。您沒有向我們展示您的代碼在哪裏執行put()或重定向。一個post()處理程序不會自動執行。

你在看哪個教程?也許我們需要收緊模糊的措辭。