1

我是 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>

我应该怎么做才能让它正确渲染?(仅显示“真棒”)

编辑就这个问题而言,错误在于我将原始代码保存为 html。当我选择此选项时,它添加了代码以使 html 呈现它看起来像原始输入。

故事的寓意:确保您在文本编辑器中进行编辑并手动更改扩展名

4

3 回答 3

2

1)去除<title>标签中的空格

2)并在您的 urls.py 文件中添加波纹管代码,无需映射视图,您也可以从 url 呈现 html 页面

 (r'^home/$', 'django.views.generic.simple.direct_to_template',
        {'template': 'index.html'}),
于 2012-12-14T06:33:20.873 回答
2

几个问题。。

1:标签内的空格是什么?

< title >是无效的。它必须是<title>Foo</title>这就是你看到“html”的原因。

2:即使标题标签写得正确,标题标签也不会呈现,所以你会得到一个空白页。如果你想显示“awesome”——你需要把它写在body标签里面。

<body>awesome</body>
于 2012-12-13T22:44:57.120 回答
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我们创建的块:

索引.html

{% extends "base.html" %}

{% block content %}
{% endblock %}

此时,index.html将完全一样,base.html因为您没有在content块内显示任何内容。使用如下数据更新您的视图:

视图.py

def home(request):
    data = {'name': 'YourName', 'age': 25}

    return render_to_response('index.html', data)

现在,再次更新您的index.html

索引.html

{% extends "base.html"%}

{% block content %}
    <p>My name is {{ name }}</p>
    <p>I'm {{ age }} years old</p>
{% endblock %}

不要忘记阅读精美教程

于 2012-12-13T22:33:44.680 回答