Python与Jinja验证

2024-05-17 02:53:58 发布

您现在位置:Python中文网/ 问答频道 /正文

检查用户状态的更好方法是什么。假设我的数据库模型中有一个halt列:

halted = db.Column(db.Boolean(), nullable=False, server_default='0')

如果我想停止这个用户帐户,我会将这个值设置为true/1,根据这个值,某些内容不会对他开放。最好的办法是什么?你知道吗

Python代码:

if user.halted == '1':
    return render_template('less_content.html')

Jinja2代码:

{% if user.halted is True %}
<body> show less content...</body>
{% else %}
<body> show more content...</body>
{% endif %}
  1. 我是说在安全方面有区别吗?

  2. 什么时候应该使用一种方法而不是另一种?


Tags: 方法代码模型数据库dbif状态检查用户
2条回答

应该不会有任何问题,因为我们在Jinja中最常用的方法是user.is_authenticated来检查用户是否登录。这个user.halted和那个没什么区别。以及使用哪种方法。当您可以通用化html页面时,可以使用Jinja,这样您就可以重用相同的页面,而不是像less那样创建新的页面_内容.html. 你知道吗

如果你有更多的用户类别,比如说,更少的内容,非常少的内容等等。最好将它们概括起来,并用Jinja模板编写它们。因为它将节省大量重写相同的HTML页面。为每种类型的用户分别呈现它们将是大量的html页面。但是如果你只讨论两种类型的用户,也就是暂停和不暂停,那就没什么关系了。你知道吗

没有安全隐患,因为模板在后端呈现,并且只有最终结果(没有隐藏的内容)被发送到浏览器。你知道吗

我更喜欢Jinja版本,因为通常一件事只需要一个模板,而不是在多个文件中复制同一件事。这很容易出错,也很麻烦。你知道吗

相关问题 更多 >