is_authenticated
是,即使他们没有登录的所有用户真实的。只有匿名用户没有通过认证。如果您只想显示已登录的用户,请使用current_user
。如果您想在列表中标记登录用户,则在迭代过程中将每个用户与current_user
进行比较。如果你继承UserMixin
<ul>{% for user in users %}
<li>{{ user.username }}{% if user.username == current_user.username %} (current){% endif %}</li>
{% endfor %}</ul>
您的用户类只会有is_authenticated
属性(或者,如果你定义它自己)。 Jinja将未知变量解释为false,所以如果您不分类,那么Jinja总会认为is_authenticated
是错误的,因为它不存在。
from flask_login import UserMixin
class User(db.Model, UserMixin):
...
知道了登录的用户的完整列表是一个更大的问题。该请求只知道当前用户,因为登录是在每个用户的浏览器上使用cookie处理的。您的应用程序将需要设置一些其他的方式来跟踪谁登录。例如,你可以存储每个用户登录该模型的时间,然后再考虑他们登录,如果他们在一天之内做到了。
你确定用户类别已is_authenticated方法/属性? – Pax0r
什么是'用户'?它的类型是什么?它是如何设置的? – dirn
我改变了我的数据库,它的工作原理。 base.html文件代码: 活动用户:{在用户%%为活性} \t \t {%如果active.logged_in == 1%} \t {{active.username}} \t \t {%ENDIF%} route.py代码: 用户= user.query.filter_by(用户名= current_user.username)。首先() user.logged_in = 1个 db.session.commit() 每次在,用户的用户日志。 logged_in = 1保存在我的数据库中。每当用户注销时,用user.logged_in = 0的其他方法。 - thx的帮助球员:) –