系统环境:win7 bit64 Anaconda2
Django版本:1.8.16
前面都是用简单的 django.http.HttpResponse 来把内容显示到网页上,本节将讲解如何使用渲染模板(*.html)的方法来显示内容。
1.新建项目和app
2.修改app视图
在myapp/views.py中写一个首页视图
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
3.新建模板
在myapp目录下建立templates文件夹,里面新建home.html
<!DOCTYPE html>
<html>
<head>
<title>NetBook</title>
</head>
<body>
welcome to netbook!
</body>
</html>
4.将视图函数对应到网址
更改myproject/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from myapp import views as myapp_views
urlpatterns = [
url(r'^$', myapp_views.home, name='home'),
url(r'^admin/', include(admin.site.urls)),
]
5.运行服务器,查看效果
6.模板补充知识
- 网站模板设计,都有通用部分。可以写一个base.html包含通用文件。home.html可以继承或扩展base.html
- 为避免同名模板查找错误,在templates文件夹中建立一个app同名的文件夹,查找时有app作为名称的一部分,就不会混淆。
7.模板进阶
向模板传递变量,修改views.py
# -*- coding: utf-8 -*-
from django.shortcuts import render
def home(request):
string = u"我在学习Django,用它来建网站"
return render(request, 'home.html', {'string': string})
字符串string被传给home.html,在hime.html调用string
{{string}}
传递列表,view.py
def home(request):
TutorialList = ["HTML", "CSS", "jQuery", "Python", "Django"]
return render(request, 'home.html', {'TutorialList': TutorialList})
home.html
教程列表:
{% for i in TutorialList %}
{{ i }}
{% endfor %}
使用for循环输出列表内容。
总结一下:一般的变量之类的用 {{ }}(变量),功能类的,比如循环,条件判断是用 {% %}(标签)
参考:http://www.ziqiangxuetang.com/django/django-template.html