在Django视图中,如何正确将返回的HTML表呈现到模板?

时间:2019-04-11 17:38:53

标签: django django-templates django-views

我无法正确地将使用Pandas DataFrame.to_html创建的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 个答案:

答案 0 :(得分:2)

您需要告诉模板,在这样的变量中呈现html是安全的:

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

相关答案:https://stackoverflow.com/a/4848661/2174832