我正在关注this教程,该教程展示了如何通过基于Flask的网站中的Steam登录。所以问题是当用户登录并显示他的用户名而不是它时,我如何删除“通过Steam登录”徽标?当他退出时做相反的事情?我现在在我的html模板中有什么:
<li><a href="/login"><input type="image" name="SignIn" value="SignIn" src="static/steam.png"/></a></li>
答案 0 :(得分:0)
我相信我们可以使用session
词典执行此操作。
{% if not session.logged_in %}
<li><a href="/login"><input type="image" name="SignIn" value="SignIn" src="static/steam.png"/></a></li>
{% else %}
<li><a href="/logout">Logout</a></li>
{% endif %}
答案 1 :(得分:0)
在上述教程中,当前用户对象存储在g.user
变量:
@app.before_request
def before_request():
g.user = None
if 'user_id' in session:
g.user = User.query.get(session['user_id'])
Jinja2模板中的g
全局变量is available也是如此。因此,您可以在模板中执行以下操作:
{% if g.user is defined and g.user is not none %}
{# User has logged in #}
<li>Hello, {{ g.user.nickname }}!</li>
<li><a href="/logout">Logout</a></li>
{% else %}
{# User has not logged in #}
<li><a href="/login"><input type="image" name="SignIn" value="SignIn" src="static/steam.png"/></a></li>
{% endif %}