В представлении Django, как правильно отобразить возвращенную таблицу HTML в шаблон? - PullRequest
1 голос
/ 11 апреля 2019

У меня проблемы с передачей HTML-таблицы, созданной с помощью Pandas DataFrame.to_html, в представление Django.
Как мне сделать это правильно?

В views.py у меня есть функция:

def my_view(request):
    data_table = Class().main()
    return render_to_response('app/insight.html', {'data_table':data_table})

Class (). Main () успешно возвращает таблицу HTML.

Упрощенное тело insight.html будет:

<body>
    {{data_table}}
</body>

Проблема в том, что я получаю источник вроде:

&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;header 1:&lt;/th&gt;
      &lt;th&gt;header 2&lt;/th&gt;
      &lt;th&gt;header 3&lt;/th&gt;
      &lt;th&gt;header 4&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;data 1&lt;/td&gt;
      &lt;td&gt;data 2&lt;/td&gt;
      &lt;td&gt;data 3&lt;/td&gt;
      &lt;td&gt;data 4&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

И отображение страницы:

<table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th>header 1</th> <th>header 2</th> <th>header 3</th> <th>header 4</th> </tr> </thead> <tbody> <tr> <td>data 1</td> <td>data 2</td> <td>data 3</td> <td>data 4</td> </tr> </tbody> </table>

1 Ответ

2 голосов
/ 11 апреля 2019

вам нужно сообщить шаблону, что безопасно выводить html в переменную следующим образом:

<body>
    {{data_table|safe}}
</body>

связанный ответ: https://stackoverflow.com/a/4848661/2174832

...