在另一个模板中从Django视图显示HTML表

aus*_*acy 5 html python django pandas

因此,我有一个Django视图,该视图允许用户上传文件,并通过Pandas数据框绘制数据。然后在单独的视图中创建图形,并通过图像标签在原始文件上传视图中引用该图形。这很完美。

现在,我还想以表格格式在图形图像旁边显示数据。我正在使用Panda的内置功能在dataframe.to_html()单独的视图中创建表,该视图也将在文件上传视图中引用。

我的表生成正确,可以在为表指定的URL上看到。尝试从文件上传模板中引用该URL时遇到错误。

错误是:

Resource interpreted as Image but transferred with MIME type text/html

我发现这是由于我的文件上传模板包含以下内容:

<img src="{% url 'html_graph' %}" />
Run Code Online (Sandbox Code Playgroud)

由于视图返回的HttpResponsecontent_type值为text/html

有没有办法从我的文件上传模板中引用HTML表格视图,而该表格不使用image标签,因为该表格是HTML而不是图片?

这是我的工作实现:

html_table = df.to_html(index=False)
return render_to_response('myapp/my_template.html', {'html_table': html_table}, RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

然后,html_table我在模板中引用它,例如:

<div>
 {{ html_graph | safe }}
</div>
Run Code Online (Sandbox Code Playgroud)

小智 3

要解决此问题,您可以执行下列操作之一:

  1. 使用<pre>这种方式标记,所有转义字符(如&lt; &gt;等)都将按原样呈现,如下所示:

<pre> {{ html_table }} </pre>

  1. 使用autoescapedjango 内置函数中可用的过滤器可以如下完成:

{% autoescape off %} {{ html_table }} {% endautoescape %}

第二种选择更好,因为它是由 django 提供的,并且只有开发人员有权对其进行操作。