标签:
在上一章节中我们使用 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 }}"。
再次访问:
如此完成了使用模板来输出数据,从而实现数据与视图分离。
接下来介绍模板中常用的语法规则:
标签:
原文地址:http://www.cnblogs.com/apple2016/p/5635944.html