正确使用模板

时间:2014-09-04 10:31:26

标签: python tornado

对不起。我不会说英语。

我想创建一个包含一个表单的页面。在这种形式我有一个输入框,用户可以输入用户名,我检查用户是否存在。如果用户不存在,则显示错误,否则转到另一页。

问题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.回去。

如果用户是唯一的,则页面重定向到&#34; / chat&#34;。如果用户点击浏览器&#34;返回&#34;按钮,表格将显示我们通过。将介绍我们停止的用户。如果有错误信息,那就是。如何做到这一点会提前返回,表格是原始的?

1 个答案:

答案 0 :(得分:3)

如果您检查用户名并且它是正确的,您应该为此用户设置secure_cookie或session。

在每个请求中,您应检查会话(或cookie)值以确定用户是否登录。通过这种方式,如果用户单击后退按钮,您将检查用户的状态并决定重定向或再次显示登录表单。

(换句话说,你可以使用会话系统中的flash消息和通知系统。这些消息设置,并显示一次。换句话说,你可以为不正确的用户名消息设置flash消息。这将在拨打flash消息时出现一次。)

检查这些页面:

standard way to handle user session in tornado

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

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