Использование приложения Python Flask для рендеринга html-таблицы с использованием цикла for. Но данные не отображаются, давая пробел <tr><tr>.

Я преобразовываю фрейм данных в html, передавая dff.to_html() из render_template и получая таблицу в html в цикле for для отображения.

Код Python:

return render_template('index.html', table = dff.head(50).to_html())

HTML-код:

         <table>
            <tbody>

            {% for row in table %}
                <tr>
                    <td>{{row.name}}</td>
                    <td>{{row.link_to_detail}}</td>
                    <td>{{row.link}}</td>
                    <td><input name ="get poster"  type="submit" value={{row['id']}}></td>
                </tr>
            {% endfor %}
            </tbody>
        </table>

Фактический результат

<tr>
      <td></td>
      <td></td>
      <td></td>
      <td><input name="get poster" type="submit" value=""></td>
</tr>

Ожидаемый результат :

    <tr>
      <td>name</td>
      <td>link_to_detail</td>
      <td>link</td>
      <td><input name="get poster" type="submit" value=""></td>
    </tr>

«»»

3
Sid 4 Июл 2019 в 15:28

3 ответа

Лучший ответ

Не используйте dff.head().to_html(), который возвращает таблицу HTML в виде строки, но вместо этого dff[:50].values (дает вам 2d-массив всех столбцов первых 50 строк), а затем row.0 и {{X3 }} чтобы получить значения первых двух столбцов в каждой строке.

0
L. Kärkkäinen 4 Июл 2019 в 12:43

dff.head(50).to_html() возвращает HTML-таблицу, а не объект Python.

Эта HTML-таблица на самом деле является строкой, и вы перебираете символы (row), которые не имеют атрибутов, называемых name, link или link_to_detail ...

Я смогу завершить этот ответ, если вы опубликуете образец своего dff кадра данных.

2
olinox14 4 Июл 2019 в 12:40

Я никогда не работал Python, но идея в том, что вам нужно отправить переменные для просмотра.

return render_template('index.html', table = dff.head(50).to_html(),  name='name' ,row.link_to_detail= 'row.link_to_detail' , link ='link')

Это может быть так

0
sem 4 Июл 2019 в 12:41