2014-09-04 57 views
1

對不起。我不會說英語。正確處理模板

我想製作一個有一種形式的頁面。在這種形式中,我有一個輸入框,用戶可以輸入用戶名,我檢查用戶是否存在。如果用戶不存在,則顯示錯誤,否則轉到其他頁面。

問題1.這是正確的嗎?

的index.html

{% if data_page['validator_name'] %} 
<div class="form-group has-error"> 
    <input type="text" name="name" /> 
    <label>{{ data_page['validator_name'] }}</label> 
{% else %} 
<div class="form-group"> 
    <input type="text" name="name"/> 
{% end %} 
</div> 

demo.py

class MainHandler(BaseHandler): 
    def get(self): 
      self.render("index.html",data_page={'validator_name':False}) 

    def post(self): 

     user_name = self.get_argument("name") 

     if self.validate_user_name(user_name): 
      self.redirect("/chat") 
     else: 
      self.render("index.html",data_page={'validator_name':"Name already use",'post_name':user_name}) 

問題2.回去。

如果用戶是唯一的,頁面重定向到「/ chat」。如果用戶點擊瀏覽器「返回」按鈕,該表格會顯示我們通過。將介紹我們停止的用戶。如果有錯誤消息,它會。如何做到這一點將預先返回,形式是原來的?

回答

3

如果您檢查用戶名並且它是正確的,您應該爲此用戶設置secure_cookie或session。

在每個請求中,您應該檢查會話(或cookie)值以確定用戶是否登錄。通過這種方式,如果用戶點擊後退按鈕,您將檢查用戶的狀態並決定重新定向或再次顯示登錄表單。

(換句話說,你可以使用閃光消息和通知系統,這些消息是在會話系統中的這些消息集,並且只顯示一次,換句話說,你可以爲不正確的用戶名消息設置一個flash消息。將出現一次打電話時閃現消息)

檢查這些頁面:

standard way to handle user session in tornado

https://gist.github.com/ayang/1735032

https://pypi.python.org/pypi/pycket/0.1