Django 模板目录配置

来源:互联网 发布:赖昌星 红楼 知乎 编辑:程序博客网 时间:2024/04/30 14:52

Django 模板

在上一章节中我们使用 django.http.HttpResponse() 来输出"Hello World!"。该方式将数据与视图混合在一起,不符合Django的MVC思想。

本章节我们将为大家详细介绍 Django 模板的应用,模板是一个文本,用于分离文档的表现形式和内容。


模板应用实例

我们接着上一章节的项目将在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件,整个目录结构如下:


HelloWorld/
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py
|   |-- urls.pyc
|   |-- view.py
|   |-- view.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
|-- manage.py
`-- templates
    `-- hello.html
hello.html 文件代码如下:


<h1>{{ hello }}</h1>
从模板中我们知道变量使用了双括号。


接下来我们需要向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+"/templates",],如下所示:


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR+"/templates",],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
我们现在修改 view.py,增加一个新的对象,用于向模板提交数据:


# -*- coding: utf-8 -*-


#from django.http import HttpResponse
from django.shortcuts import render


def hello(request):
    context          = {}
    context['hello'] = 'Hello World!'
    return render(request, 'hello.html', context)
可以看到,我们这里使用render来替代之前使用的HttpResponse。render还使用了一个字典context作为参数。


context 字典中元素的键值 "hello" 对应了模板中的变量 "{{ hello }}"。


再访问访问http://192.168.45.3:8000/hello/,可以看到页面:

这样我们就完成了使用模板来输出数据,从而实现数据与视图分离。


转载自:http://blog.csdn.net/ljq550000/article/details/51873764

0 0
原创粉丝点击