Для цикла в Jinja2 / Python не работает (с использованием sqlite3) - PullRequest
0 голосов
/ 02 мая 2018

У меня есть следующее для цикла в дзиндзя:

<table>
   <thead>
       <td>Stock</td>
       <td>Shares</td>
       <td>Total</td>
   </thead>
   <tbody>
       {% for dict in rows2 %}
       <tr>
           {% for key, value in dict.items() %}
           <td> {{value}} </td>
           {% endfor %}
       </tr>
       {% endfor %}
   </tbody>
</table>

, который получает данные из моего приложения для колб, особенно из следующей строки:

rows2 = db.execute("SELECT stock, amount, total_value FROM portfolio WHERE id = :id", id = session.get("user_id"))

Теперь, если я печатаю row2 в консоль, я на самом деле получаю то, что хочу, это примерно так:

[{'stock': 'AAPL', 'amount': 1, 'total_value': 676.4}, {'stock': 'BB', 'amount': 1, 'total_value': 10.53}, {'stock': 'IBM', 'amount': 1, 'total_value': 144.99}]

но таблица на веб-странице показывает только часть заголовка, а фактическая часть данных остается пустой! Почему это может быть?

Ура!

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Исходя из вашего комментария, я думаю, что виновник в вашем звонке на render_template(). Вам нужно не только передать имя шаблона, но и переменные, используемые в шаблоне . Смотри здесь для колб-документов

Так что вы на самом деле должны делать

return render_template("portfolio.html", rows2=rows2)

... где левая сторона - это имя в шаблоне, а правая сторона - это переменная, которую вы присвоили в своей логике.

0 голосов
/ 02 мая 2018

Не указывать () после элементов ():

{% for key, value in dict.items %}
....
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...