@shmostertoster

Как получить значения словаря в таблицу в Flask?

Здравствуйте!
Подскажите, как получить значения из словаря в таблицу в HTML?
Как ни усложняю вглубь цикл for на странице - не получается. Код выводит все значения ключей из словаря.
Нужно что бы в 31 ячейку соответствующую дням месяца подставились значения из словаря.
Направьте мысли мои в нужное русло.
Спасибо!

Вот код:
#!/usr/bin/env python
#!/usr/bin/env python

from flask import Flask, flash, redirect, render_template, \
     request, url_for

app = Flask(__name__)

@app.route('/tabel')
def index():
    return render_template(
        'tabel1.html',
        taba = [{'01': 'О', '04': 'У', '14': 'О', '26': 'У', '09': 'У', '20': 'У', '16': 'У', '02': 'О', '12': 'У',
                '19': 'У', '18': 'У', '07': 'О', '22': 'О', '21': 'У', '03': 'У', '28': 'О', '08': 'О', '25': 'У',
                '05': 'У', '27': 'У', '23': 'У', '17': 'У', '31': 'У', '24': 'У', '15': 'О', '06': 'У', '10': 'У',
                '11': 'У', '30': 'У', '29': 'О', '13': 'У'}])

if __name__=='__main__':
    app.run(debug=True)


Вот страница:
<html>
<head>
<title>Месяц</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<table width="100%" border="1" cellspacing="0">
  <tr>
    <td bordercolor="1"></td>
  </tr>
  <tr>
    <td bordercolor="1"><table width="100%" border="1" cellspacing="0">
      <tr bgcolor="#D1D5C1">
        <td><div align="center"><span>1</span></div></td>
        <td><div align="center"><span>2</span></div></td>
        <td><div align="center"><span>3</span></div></td>
        <td><div align="center"><span>4</span></div></td>
        <td><div align="center"><span>5</span></div></td>
      </tr>
		<tr bgcolor="#D1D5C1">
        <td><div align="center"><span>{% for dict_item in taba %}{% for k, v in dict_item.items() %}{{v}}{% endfor %}{% endfor %}</span></div></td>
        <td><div align="center"><span>{% for dict_item in taba %}{% for k, v in dict_item.items() %}{{v}}{% endfor %}{% endfor %}</span></div></td>
        <td><div align="center"><span>{% for dict_item in taba %}{% for k, v in dict_item.items() %}{{v}}{% endfor %}{% endfor %}</span></div></td>
        <td><div align="center"><span>{% for dict_item in taba %}{% for k, v in dict_item.items() %}{{v}}{% endfor %}{% endfor %}</span></div></td>
        <td><div align="center"><span>{% for dict_item in taba %}{% for k, v in dict_item.items() %}{{v}}{% endfor %}{% endfor %}</span></div></td>
      </tr>
</body>
</html>
  • Вопрос задан
  • 1067 просмотров
Решения вопроса 1
@VovanZ
Не нужно усложнять цикл вглубь.

Вариант 1:
{% for key in taba[0] %}{{ taba[0][key] }}{% endfor %}


Вариант 2:
{% for key, value in taba[0].items() %}{{ value }}{% endfor %}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@shmostertoster Автор вопроса
Вот вопрос еще появился. HTML файл на одного работника получается в 400 строк.
На подразделение в 400 человек - этож не загрузится никогда.
31 колонка для дат + по 4 строки (из list) на одного работника (ФИО+график работы+табель+select-ы (dict) на каждую дату с видом неявки)
Как можно решить вопрос с select-ами чтобы не дублировать их в коде HTML?
C учетом того, что измененные значения в select нужно писать в БД.

Может подскажите направление действий.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы