抱歉。我不会说英语。
我想制作一个只有一种表单的页面。在这种形式中,我有一个输入框,用户可以输入用户名,然后检查用户是否存在。如果用户不存在,则显示错误,否则转到另一个页面。
问题 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>
演示.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”。如果用户单击浏览器的“后退”按钮,该表单将显示我们已通过。将介绍我们停止的用户。如果有错误消息,它就会出现。如何做到预返回,表格是原始的?
最佳答案
如果您检查用户名并且它是正确的,您应该为此用户设置 secure_cookie 或 session。
在每个请求中,您应该检查 session (或 cookie)值以确定用户是否登录。这样,如果用户单击后退按钮,您将检查用户的状态并决定再次重定向或显示登录表单。
(换句话说,您可以使用 session 系统中的闪现消息和通知系统。此类消息会设置并显示一次。换句话说,您可以为不正确的用户名消息设置闪现消息。这将来电闪信时出现一次。)
检查这些页面:
standard way to handle user session in tornado
关于python - 正确使用模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25663182/