Django 模板目錄配置

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章