Django模板无法在开发服务器上正确呈现

问题描述

| 当将开发服务器与视图和模板html文件(似乎都正确格式化)一起使用时,Django的服务器不会像应有的那样使模板中的html成为源代码到网页。相反,它似乎只是呈现模板,就好像它是我想在页面显示的东西一样。因此,似乎使用我的模板文件作为应打印的文本来创建它自己的html。例如,这是在开发服务器上运行时视图和模板以及来自网页的源代码。 视图:
def start(request,ampCode):
t = get_template(\'code_user.html\')
c = Context({\'user_code\': ampCode})
html = t.render(c)
return HttpResponse(html)
模板:
{% extends \"base_code_user.html\" %}

{% block title %} This is the title {% endblock %}

{% block body %}

<b> {{user_code}} </b>

{% endblock %}
一个扩展的其他模板:
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">
<head>
<title> {% block title %}  {% endblock %} </title>
</head>

<body>
    {% block body %} {% endblock %}
</body>

</html>
产生的源代码
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">
<html>
<head>
<Meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
<Meta http-equiv=\"Content-Style-Type\" content=\"text/css\">
<title></title>
<Meta name=\"Generator\" content=\"Cocoa HTML Writer\">
<Meta name=\"CocoaVersion\" content=\"1038.35\">
<style type=\"text/css\">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Courier}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Courier; min-height: 14.0px}
span.Apple-tab-span {white-space:pre}
</style>

</head>
<body>
<p class=\"p1\"><!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">
<html>
<head>
<Meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
<Meta http-equiv=\"Content-Style-Type\" content=\"text/css\">
<title></title>
<Meta name=\"Generator\" content=\"Cocoa HTML Writer\">
<Meta name=\"CocoaVersion\" content=\"1038.35\">
<style type=\"text/css\">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Courier}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Courier; min-height: 14.0px}
span.Apple-tab-span {white-space:pre}
</style>

</head>
<body>
<p class=\"p1\">&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"</p>
<p class=\"p1\"><span class=\"Apple-converted-space\">  </span>\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"&gt;</p>
<p class=\"p1\">&lt;html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"&gt;</p>
<p class=\"p1\"><span class=\"Apple-converted-space\">    </span>&lt;head&gt;</p>
<p class=\"p1\"><span class=\"Apple-tab-span\"> </span>&lt;title&gt;  This is the title  &lt;/title&gt;</p>

<p class=\"p1\"><span class=\"Apple-converted-space\">    </span>&lt;/head&gt;</p>
<p class=\"p2\"><br></p>
<p class=\"p1\"><span class=\"Apple-tab-span\"> </span>&lt;body&gt;</p>
<p class=\"p1\"><span class=\"Apple-tab-span\"> </span><span class=\"Apple-tab-span\">    </span></p>
<p class=\"p2\"><br></p>
<p class=\"p1\"><span class=\"Apple-tab-span\"> </span>&lt;b&gt; AAAAAA &lt;/b&gt;</p>

<p class=\"p2\"><br></p>
<p class=\"p1\"></p>
<p class=\"p1\"><span class=\"Apple-tab-span\"> </span>&lt;/body&gt;</p>
<p class=\"p2\"><br></p>
<p class=\"p1\">&lt;/html&gt;</p>
</body>
</html>
也许我只是不了解模板系统的功能,并且可能工作正常,但是我的印象是模板中的任何内容都将成为页面的最终源代码。任何可能导致此问题的帮助都将有所帮助。谢谢     

解决方法

编辑: 当我在Django项目中尝试您的确切示例时,它对我有用(相同的视图名称,相同的模板名称)。输出(假设ampCode为3):
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">
<head>
<title>  This is the title  </title>
</head>

<body>


<b> 3 </b>


</body>

</html>
我的猜测是您的问题在其他地方,而不是在代码示例中找到。也许您的URL配置文件中存在指向完全不同的视图的问题? 先前的答案: 在您的视图中,将“ 5”添加到“ 6”中:
return HttpResponse(html,mimetype=\'text/html\')
如果不是,它将默认解释为
text/plain
,因此无法正确呈现html。 如果要在渲染模板时缩短内容,可以只使用响应快捷方式。看一下Django的快捷功能。