我是Django的新手,我正在尝试创建一个简单的html骨架来验证一切正常。一切正常(服务器正在运行并加载文件)但是当我输入HTML代码时,它显示为原始文本而不是正确呈现它。
我的views.py如下
def home(request):
return render_to_response('index.html')
我的'index.html'如下
<!DOCTYPE html >
<html>
<head>
<meta charset="UTF-8">
<title> awesome </title>
</head>
<body>
</body>
</html>
如何才能正确渲染? (仅显示“真棒”)
EDIT 就这个问题而言,错误来自于我将原始代码保存为html。当我选择这个选项时,它添加了代码以使html渲染它看起来像一个原始输入。
故事的道德:确保您在文本编辑器中进行编辑并手动更改扩展
答案 0 :(得分:2)
1)删除&lt;中的空格标题&gt;标签
2)并在urls.py文件中添加波纹管代码,无需使用视图进行映射,也可以从url渲染html页面
(r'^home/$', 'django.views.generic.simple.direct_to_template',
{'template': 'index.html'}),
答案 1 :(得分:1)
您需要做的第一件事是创建一个“基础”模板,以便其他模板可以扩展。您通常会将其称为base.html
,但您可以使用所需的名称。您还需要创建扩展模板可以使用的blocks
:
<强> base.html文件强>
<!DOCTYPE html >
<html>
<head>
<meta charset="UTF-8">
< title > awesome < /title >
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
然后,您必须从base.html
扩展index.html
并使用我们创建的content
块:
<强>的index.html 强>
{% extends "base.html" %}
{% block content %}
{% endblock %}
此时,index.html
将与base.html
完全相同,因为您没有在content
块中显示任何内容。使用以下数据更新您的视图:
<强> views.py 强>
def home(request):
data = {'name': 'YourName', 'age': 25}
return render_to_response('index.html', data)
现在,再次更新您的index.html
:
<强>的index.html 强>
{% extends "base.html"%}
{% block content %}
<p>My name is {{ name }}</p>
<p>I'm {{ age }} years old</p>
{% endblock %}
不要忘记阅读罚款tutorial。
答案 2 :(得分:1)
一些问题..
1:标签内的空格是什么?
< title >
无效。它必须是<title>Foo</title>
这就是你看到“html”的原因。
2:即使标题标签写得正确,标题标签也不会呈现,因此您将获得一个空白页面。如果你想显示“真棒” - 你需要在body标签内写。
<body>awesome</body>