Jinja: ¿hay alguna variable integrada para obtener el nombre de la página HTML actual?

Soy muy nuevo en Jinja y Flask

Quiero establecer un color de fondo diferente en la barra de navegación para indicar la página actual.

¿Hay alguna variable o método Jinja incorporado que devuelva las páginas HTML actuales? Si es posible, quiero el código que no necesita comunicarse con el archivo de Python.

Así que si estoy actualmente en index.html , devolverá “index” o “index.html”

Aquí está mi código de navegación en mi plantilla:

  

Quiero agregar una statement if para que la página actual obtenga

  • que tiene class

     {% if ??? %} 
  • ...
  • {% else %} ... {% endif %}

    Gracias

    Hay un truco en el documento jinja2 para su problema: http://jinja.pocoo.org/docs/tricks/

    Si su lista es lo suficientemente simple, solo usando el objeto de solicitud, algo como eso:

     
  • {{item.text}}
  • Normalmente, escribo este fragmento de código en una macro con un argumento explícito para establecer active :

     {% macro render_sitem(endpoint, display, cls='', icon-cls='', active='') %} 
  • {{display}}
  • {% endmacro %}

    La lista será algo como:

       

    Por lo tanto, si tiene una página secundaria que amplía o incluye su lista, puede establecer un elemento activo como:

     {% set active_page = 'page.index' %} 

    en la parte superior de la página de su hijo.

  • En la pirámide 1.5 no hay ningún método como request.endpoint en Flask.

    Utilizamos filtro personalizado get_endpoint

    request.path | get_endpoint

    jinja2_custom_filters.py:

     from pyramid_jinja2 import Environment def get_endpoint(str): """ :param str: :return: """ return str.split('/')[-1] env = Environment() env.filters['get_endpoint'] = get_endpoint 

    y en desarrollo.ini:

     jinja2.filters = model_url = pyramid_jinja2.filters:model_url_filter route_url = pyramid_jinja2.filters:route_url_filter static_url = pyramid_jinja2.filters:static_url_filter get_endpoint = path to ... jinja2_custom_filters.get_endpoint 

    Tal vez sea de utilidad para alguien 🙂