我正在使用django模板来渲染我的网页。在展开递归树的过程中发生了一些奇怪的事情(无空间标记没有帮助)。
这是我的递归模板:
的index.html:
<ul class="Container">
<li class="IsRoot">
<div class="Expand">
</div>
<div class="Content">
Содержание
</div>
</li>
{% include 'list.html' with data=list %}
</ul>
和list.html(作为递归部分):
<ul class="Container">
<li class="Node ExpandClosed">
<div class="Expand"></div>
<div class="Content">
<a href="/help/{{data.name}}">
{{data.content}}
</a>
</div>
{% for item in data.decendent %}
{% include 'list.html' with data=item %}
{% endfor %}
</li>
</ul>
结果如下:
使用open(“index.html”,“r”)读取为html文件内容的文件的html内容.read()被提取为文本,而不是html:
<div id="frame" style="float:left; margin-left:310px;">
<!DOCTYPE html>
<html>
<head>
<title>hello</title>
</head>
<body>
Body Great Style
</body>
</html>
</div>
而且我在元素之间也有奇怪的空白:
如何避免这种奇怪的行为?谢谢!
答案 0 :(得分:0)
您可以autoescape off
使用(小心!):
{% autoescape off %}
{{data.content}}
{% endautoescape %}
答案 1 :(得分:0)
{% spaceless %} YOUR CONTENT {% endspaceless %}
答案 2 :(得分:0)
{% spaceless %}
只删除标记之间的空格,而不删除文本。它在文档中描述:https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#spaceless
如果您想在文本中删除空格,可以使用自定义模板标记,例如https://gist.github.com/martinsvoboda/1bf965a8c6037c0fe1a88d89ea822df6。用法:
{% nospaces %}
<strong>
Hello
this is text
</strong>
{% nospaces %}
呈现
<strong>Hello this is text</strong>