Me gustaría hacer un encabezado que sea dinámico dependiendo de si un usuario está conectado, tengo un inicio de sesión personalizado en el directorio activo. inicié sesión en un parámetro en una cookie, y uso el .get en python para buscarlo. Sigo buscando y no encuentro cómo hacer esto. Cualquier ayuda sería apreciada.

Siempre obtengo index.html pase lo que pase, y estoy segura de que tengo la cookie.

{% if logged == 1 %}
  {% extends "logged-index.html" %}
{% else %}
  {% extends "index.html" %}
{% endif %}
1
Francis Desjardins 12 abr. 2020 a las 00:00

2 respuestas

La mejor respuesta

Si desea un encabezado dinámico / barra de navegación o pie de página; ¿No podría simplemente poner declaraciones if / else en su plantilla principal desde la que se extiende, para que se muestren diferentes enlaces y cosas dependiendo de si el usuario ha iniciado sesión o no? Esto es lo que hice en mi aplicación web:

<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 %}
1
Stephen 13 abr. 2020 a las 02:49

Quizás no entiendo lo que buscas, pero:

Creo que sería la misma lógica que esta lógica de título dinámico:

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

Tomé prestado el concepto de: https://blog.miguelgrinberg.com/post/ the-flask-mega-tutorial-part-ii-templates

0
Stephen 12 abr. 2020 a las 02:01