отображение таблицы в html с использованием цикла for из render_template () - PullRequest
3 голосов
/ 04 июля 2019

Использование приложения 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 ]

2 голосов
/ 04 июля 2019

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

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

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

0 голосов
/ 04 июля 2019

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

0 голосов
/ 04 июля 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...