【问题标题】:Template html not rendering correctly模板 html 未正确呈现
【发布时间】:2011-09-01 00:16:34
【问题描述】:

当我尝试查看我创建的模板时,开发服务器会显示模板 html 文件,就好像它是纯文本一样。基本上,网页显示了我的模板 .html 文件中的内容。我知道有些东西正在工作,因为当我将 render_to_response 函数传递给参数字典并尝试显示我传递的变量时,它会正确呈现该部分。这是问题的一个例子。

这是模板文件:

<b>Hello</b>

那么输出源代码如下:

<!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 {边距:0.0px 0.0px 0.0px 0.0px;字体:12.0px 快递} </style>

</head> <body> <p class="p1"><b>Hello</b></p> </body> </html>

屏幕只显示: <b>Hello</b>

任何关于如何使我的模板呈现为 html 文件的想法将不胜感激。

【问题讨论】:

  • <b>Hello</b><b>Hello</b>。这就是您的模板要显示的内容。效果很好。
  • 您没有正确解释这一点。如果您的模板文件只是<b>Hello</b>,那么所有这些文档类型的内容是从哪里来的?您需要准确显示模板是什么,以及如何在视图中呈现它。
  • @daniel。也许我只是对模板的作用感到困惑。这是我的视图函数:def start(request, foo): return render_to_response('code_user.html', {"foo":foo})。如果模板文件是:{{foo}},当我加载网页时屏幕上的输出是<b>foo</b>,其中 foo 是变量的值。我不确定的是文档类型的东西是从哪里来的。我想这是我真正的问题。

标签: django django-templates


【解决方案1】:

我不知道你是如何将 html 文件输出到你的模板中的,但是,如果你在你的模板中做这样的事情

{{ my_template }}

渲染您传递给 render_to_response 的 my_template 字符串变量

您只需要使用safe 过滤器

{{ my_template|safe }}

这不会对您的字符串进行 html 编码,并且 html 会在您的页面中呈现属性

【讨论】:

    猜你喜欢
    • 2014-04-23
    • 2022-01-24
    • 2015-04-01
    • 2015-06-18
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    相关资源
    最近更新 更多