Как запустить цикл for в дочернем шаблоне jinja / как получить доступ к переменной внутри дочернего шаблона jinja, которая передается в файле python flask - PullRequest
0 голосов
/ 27 сентября 2019

Я делаю дочерний шаблон в jinja, который расширяет родительский шаблон. В дочернем шаблоне я передаю переменную для запуска цикла for в шаблоне jinja, но эта часть цикла for недоступна на странице html.в хроме.родительский шаблон. В родительском шаблоне есть только панель навигации.

<html>
    <head>
        <link rel="stylesheet" href="static\navbar.css?v=1.1">  
         {% block head %}{% endblock %}
    </head>
    <body>
        <nav class="menu">
            <ul>
              <li>Website</li>
              <form action="{{ url_for('search') }}" class="search-form"  target="_blank" method="POST">
                <input type="text" name="text" placeholder="Search here..">
                <button>Search</button> 
              </form>
                {% if name %}
                  <li><a href="#">{{name}}</a></li>
                  <li><a href="{{ url_for('logout') }}">Logout</a></li>
                {% else %}
                  <li><a href="{{ url_for('open_login') }}">Login & SignUp</a></li>
                {% endif %}

                <li><a href="{{ url_for('display_cart') }}"><i class="fas fa-cart-plus"></i></a></li>   
            </ul>
        </nav>

        {% block content %}
        {% endblock %}
    </body>
</html>

Дочерний шаблон -В дочернем шаблоне я передаю переменную для цикла for, но она не работает.

{% extends 'navbar.html' %}
{% block head %}

        <title>Flipkart</title>
         <!--new version 2nd way to update css-->
        <link rel="stylesheet" href="static\gallary.css">
        <script src="https://kit.fontawesome.com/04c28a3c9a.js"></script>

{% endblock %}
{% block content %}      
    <div class="description">
        Shopping Website
    </div>
    <hr>
    <h2>Deals Of The Day</h2>
    <hr>
    {% for i in ids %}       -----this part is not coming in browser.----
        <h1>sasad<a href="{{ url_for('products_desc', item='shoes', id=i) }}">Link {{i}}</a></h1>

    {% endfor %}
  {% endblock %}

Файл с колбой - функция товаров

@app.route('/products')
def products():
    cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
    cursor.execute('SELECT id FROM shoes')
    shoes_ids=cursor.fetchall() 

    print(shoes_ids)
    ids = []

    for shoes_id in shoes_ids:
        ids.append(shoes_id['id']) 


    return render_template('navbar.html',ids=ids)   ---here i am passing the 
                                                       variable to the child 
                                                       template-----




I want the for loop content to be displayed on the browser.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...