数据驱动的页面
模型建立了Python对象与数据库之间的映射。并提供以Python编码的方式访问数据库。
以数据呈现和控制作为页面主要功能
通过添加一个新的模型对象,最终调用save方法写入数据库。
假设现有一模型类Person。在数据库添加记录的方法有
1. Person.objects.create(name=name,age=age)
2. p= Person(name='WZ','age=23')
p.save()
3.p= Person(name='TWZ')
p.age= 23
p.save()
获取全部数据。相当于select*from Person
Person.objects.all()
获取前10条数据。相当于select*from Person limit 10
Person.objects.all()[:10]
模型操作返回的是一个QuerySet 的对象。它支持直接遍历, 也可以通过list()操作,转换为线性表
获取符合特定条件的一条数据
Person.objects.get(name='Tom')
Get操作只能返回一条符合条件的记录,多个记录集的返回应该用 filter
获取满足条件的数据集
Person.objects.filter(age=18)
获取值与条件相似的数据集
Person.objects.filter(name_contains="Tom")
排序
Person.objects.filter(name_contains="Tom").order_by("age")
获取记录数:count
Person.objects.filter(age=18).count
要获取记录的个数尽量使用count,而不是用len()计算集合长度
去除重复:distinct
Person.objects.order_by('age').distinct('age')
操作过程
导入模板
from blog import models
查询数据
categories= models.Category.object.all()
传递数据到模板
return render(request, 'categories.html',{'categories': categories})
模板布局呈现
{% for category in categories %}
<tr>
<td>{{ category.name }}</td>
<tr>
{% endfor %}
映射路径
path('category/',blog_vw.Category,name="category")