如何根据 Python 中的 cookie 在 bootstrap 导航栏中仅显示某些项目?

How do I only show certain items in a bootstrap navbar based on cookies in Python?

我的 bootstrap 导航栏在我的基本模板中,看起来像这样:

<ul class="nav navbar-nav">
    <li><a href="/">Home</a></li>
    <li><a href="/about">About</a></li>
    <li><a href="/post">New Post</a></li>   
    <li><a href="/login">Login</a></li>
    <li><a href="/logout">Logout</a></li>
    <li><a href="/register">Register</a></li>
</ul>

我想让导航栏在用户未登录时隐藏“新建”Post 和“注销”列表项,并在用户登录时隐藏“登录”和“注册”列表项。关于如何实现这一点的任何提示?

如果有帮助,我将 Python 2.7 与 Jinja2 一起使用,并且我正在使用 cookie 对用户进行身份验证。

你可以使用这样的东西:

{% if user %}
    <ul class="nav navbar-nav">
        <li><a href="/">Home</a></li>
        <li><a href="/about">About</a></li>
        <li><a href="/post">New Post</a></li>  
        <li><a href="/logout">Logout</a></li>
    </ul>
{% elif not user %}
    <ul class="nav navbar-nav">
        <li><a href="/">Home</a></li>
        <li><a href="/about">About</a></li> 
        <li><a href="/login">Login</a></li>
        <li><a href="/register">Register</a></li>
    </ul>
{% endif %}

假设您要将变量 user 传递给模板,这取决于 cookie 是否存在。所以你必须首先在你的视图中验证是否设置了cookie,然后将结果传递给模板。