【问题标题】:Dynamic Header In HTML with Flask/Jinja (Extend)带有 Flask/Jinja 的 HTML 中的动态标题(扩展)
【发布时间】:2020-04-11 21:00:48
【问题描述】:

我想根据用户是否登录创建一个动态的标题,我有一个自定义登录到活动目录。登录cookie中的参数,我使用python中的.get来获取它。 我一直在寻找,但没有找到如何做到这一点。任何帮助将不胜感激。

无论如何,我总是得到 index.html,而且我确定我有 cookie。

{% if logged == 1 %}
  {% extends "logged-index.html" %}
{% else %}
  {% extends "index.html" %}
{% endif %}

【问题讨论】:

  • 我以自己的方式管理它,我回顾了我的步骤并注意到我忘记在我的渲染模板中传递我的变量。在 Jinja 中,您似乎也需要“1”,即使它是一个整数。但它确实以这种方式工作得很好,对于那些想要这样做的人来说。感谢您的帮助。

标签: python html python-3.x flask jinja2


【解决方案1】:

如果您想要动态页眉/导航栏或页脚;您不能将 if/else 语句放入您扩展的主模板中,以便根据用户是否登录显示不同的链接和内容。这就是我在我的网络应用上所做的:

<ul class="navbar-nav">
  {% if current_user.is_authenticated %}
  <li class="nav-item">
      <a class="nav-link" href="{{ url_for('account') }}">Account</a>
    </li>
  <li class="nav-item">
      <a class="nav-link" href="{{ url_for('logout') }}">Logout {{current_user.username}}?</a>
    </li>
  {% else %}
  <li class="nav-item">
    <a class="nav-link" href="{{ url_for('logIn') }}">Login</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="{{ url_for('signUp') }}">Sign Up</a>
  </li>
  {% endif %}

【讨论】:

    【解决方案2】:

    也许我不明白你在追求什么,但是:

    我认为这将是与这个动态标题逻辑相同的逻辑:

     <head>
     {% if logged == 1 %}
     <title>{{ username }} - is logged in</title>
     {% else %}
     <title>Welcome to My Website!</title>
     {% endif %}
     </head>
    

    我借用了这个概念: https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-ii-templates

    【讨论】:

    • 我正在尝试通过 Jinja 的 {% extend file.html %} 函数动态扩展带有页眉/页脚的 HTML 页面。取决于用户是否登录。
    猜你喜欢
    • 1970-01-01
    • 2015-11-24
    • 2017-04-09
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多