Django模板介绍
django模板是用来展示后台数据的,在python django中,模板文件的后缀就是我们常用的.html文件,从后台数据库取数据需要用到django模板标签。
什么是模板标签呢?
django标签可以在html页面中嵌套python代码,使用django模板标签可以获取到views.py传给我们的数据并展示出来,例如html静态文件中取数据,我们可以使用如下形式。
{{user.id}}如果后台传入的是一个list集合,集合里面存入的是User对象,遍历list集合的话可以使用以下方法来遍历,如获取User对象的id。
{% for user in list%}
{{ user.id}}
{% endfor %}下面将来做一个小案例,当用户登录http://127.0.0.1:8000主页就能马上获取用户列表,如图所示,本案例用到了bootrap框架,不然列表会很丑。

首先在models.py文件里面添加一个User的实体类(模型),需要同步到数据库中,详情请参考:jango入门4:django模型创建和数据库表的同步,代码如下。
from django.db import models # models.Model定义之后会自动与数据库中user表关联 class User(models.Model): # 设置主键,如果不设置系统也会生成一个id属性 id = models.IntegerField(primary_key=True) username = models.CharField(max_length=50) password = models.CharField(max_length=50) phone = models.CharField(max_length=50) address = models.CharField(max_length=100)
然后在我们的sqlite数据库的user表中添加一些用户数据,

第一步:在主urls.py里面添加一个总的url配置,把实现的细节交给blog下面的urls.py来处理,代码如下。
urlpatterns = [
url(r'^admin/', admin.site.urls), # 忽略它
url(r'^', include('blog.urls')), #交由blog模块下面的urls.py来处理
]第二步:在blog模块下的urls.py中的urlpatterns中添加一个跳转到首页的url正则表达式,“name=”依然可以省略。
urlpatterns = [ # 跳转到列表页面,加了r'^$'表示是主页面,前面django入门5有讲到 url(r'^$', views.user_list, name='user_list'), ]
第三步:用户输入http://127.0.0.1:8000 ,urls.py会根据这个 r'^$' ,url正则表达式找到views.py里面的user_list()方法,下面是user_list方法的实现,给前端传送一个key为users,value为lists集合的结果。
from django.http import HttpResponse
from django.shortcuts import render, render_to_response
from blog.models import User
# 获取用户列表的方法
def user_list(request):
# 查询所有数据的方法
lists = User.objects.all()
return render(request, 'user/user_list.html', {'users': lists})第四步:我们需要在blog/templates/user文件夹下新建用户列表的模板文件user_list.html,如图所示。

第五步:实现user_list.html模板文件,利用上面介绍到的django模板标签将users数据遍历后获取出来,代码如下。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户列表页</title>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
</head>
<body>
<table style="width: 500px">
<tr>
<td>ID</td>
<td>用户名</td>
<td>密码</td>
<td>电话</td>
<td>住址</td>
<td>操作</td>
</tr>
{% for user in users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.username }}</td>
<td>{{ user.password }}</td>
<td>{{ user.phone }}</td>
<td>{{ user.address }}</td>
<td><a href="{% url 'user_detail' pk=user.id %}">查看</a>
<a href="{% url 'user_edit' pk=user.id %}">修改</a></td>
</tr>
{% endfor %}
</table>
</body>
</html>效果如图一所示。