Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改“;“通过Steam登录”;认证后的徽标_Python_Flask_Steam - Fatal编程技术网

Python 更改“;“通过Steam登录”;认证后的徽标

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> 我相信

我下面的教程演示了如何在基于Flask的网站中通过Steam登录。所以问题是,当用户登录时,我如何删除“通过Steam登录”徽标,并显示其用户名而不是用户名?当他注销的时候做相反的事情?我现在在html模板中拥有的内容:

<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,那么至少您也应该接受我的答案。:)是的,谢谢你,我完全忘了接受你的回答,这帮了我很大的忙:)