python - 正确使用模板

标签 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>

演示.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

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

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

关于python - 正确使用模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25663182/

相关文章:

python - 如何在 Python 脚本上动态启用/禁用 Tornado Auth?

python - Web 套接字/Tornado - 通知客户端数据库更新

python - 诊断python中的内存泄漏

python - 车牌字符分割python opencv

python - 尝试使用 openpyxl 打开工作簿时出现 TypeError

python - 如何获取 Tornado Web 套接字请求的客户端 IP?

python - Tornado Python - 流式传输视频

python - tornado 将 GET 和 POST 参数映射到列表。如何禁用此 "feature"?

python - 添加自定义布局时,Django Crispy 表单不会保存

python - 输出 : terminal attributes: No such device or address in Windows Pycharm debugger