Python 更改“;“通过Steam登录”;认证后的徽标
我下面的教程演示了如何在基于Flask的网站中通过Steam登录。所以问题是,当用户登录时,我如何删除“通过Steam登录”徽标,并显示其用户名而不是用户名?当他注销的时候做相反的事情?我现在在html模板中拥有的内容:Python 更改“;“通过Steam登录”;认证后的徽标,python,flask,steam,Python,Flask,Steam,我下面的教程演示了如何在基于Flask的网站中通过Steam登录。所以问题是,当用户登录时,我如何删除“通过Steam登录”徽标,并显示其用户名而不是用户名?当他注销的时候做相反的事情?我现在在html模板中拥有的内容: <li><a href="/login"><input type="image" name="SignIn" value="SignIn" src="static/steam.png"/></a></li> 我相信
<li><a href="/login"><input type="image" name="SignIn" value="SignIn" src="static/steam.png"/></a></li>
我相信我们可以通过会话来做到这一点
{% 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 %}
{%if not session.logged_in%}
{%else%}
{%endif%}
在上述教程中,当前用户对象存储在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
全局变量。因此,您可以在模板中执行以下操作:
{% 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 %}
{%如果定义了g.user且g.user不是none%}
{{#用户已登录}
你好,{{g.user.昵称}}李>
{%else%}
{{#用户尚未登录}
{%endif%}
它几乎可以工作,但是它返回的不是用户名“VARCHAR(80)”。奇怪的是,它应该可以工作(g.user。教程中也使用了昵称)。“昵称”在数据库中的值是否正确?@Steve:如果您在代码中使用我的解决方案,并另外询问包含上述代码的a,那么至少您也应该接受我的答案。:)是的,谢谢你,我完全忘了接受你的回答,这帮了我很大的忙:)