码迷,mamicode.com
首页 > 其他好文 > 详细

Django 模板

时间:2016-07-02 20:13:49      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:

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

接下来详细介绍Django模板的应用,模板是一个文本,用于分离文档的表现形式和内容。

模板应用实例接着上一章节的项目将在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件,代码如下:双括号表示变量

<h1>{{ hello }}</h1>

整个目录结构如下:

技术分享

 

向Django说明该模板文件的路径,方法:修改settings.py文件,将其TEMPLATES中的DIRS设置为:[BASE_DIR+"/templates",]

修改后的settings.py文件内容为:

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,增加一个新的对象,用于向模板提交数据:

修改后的view.py为:

#-*- coding: utf-8 -*-
#修改前:
"""from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world ! ")
"""    
#修改后:
from django.shortcuts import render

def hello(request):
    context          = {}
    context[hello] = Hello World!
    return render(request, hello.html, context)

其中注释行#-*- coding: utf-8 -*-是为了支持中文。

这里使用render来替代之前使用的HttpResponse。render还使用了一个字典context作为参数。

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

再次访问:

技术分享

如此完成了使用模板来输出数据,从而实现数据与视图分离。

接下来介绍模板中常用的语法规则:

 

Django 模板

标签:

原文地址:http://www.cnblogs.com/apple2016/p/5635944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!