django常用的查询方法

基础概念

  • 在django中,model.py中的每一个继承了django.db.models.Model的类(多好地方把这个类叫做“类模型”、“模型类”、“模型”)都代表一个数据库表。
  • 模型类中的每一个属性都代表数据库表中的一个字段。
  • 模型类的每一个对象都是数据库表中的一条记录。

查询

当我们创建数据库模型后,django会自动提供给我们数据库抽象API(就是一些函数),通过这些API我们可以执行创建、取回(查找)、更新、删除的操作。常用的函数有all()get()filter()exclude()。其他的方法见QuerySet API Reference

取回记录
当从数据库中取回记录时,模型类上的Manager会返回一个QuerySet(一个集合),要取回的记录就暂存在这个集合里面。

一个QuesrySet由两部分构成,第一部分是数据库表中的所有的记录,另一部分是一些过滤器。过滤器的作用就是根据给定的查询参数筛选查询结果。与SQL过程相比,一个QuerySet等价于select状态,过滤器就是一些像limitwhere一样的限制条件。

函数
假设模型类是Blog
Blog.objects.all()函数会返回一个QuerySet,里面包含着Blog表中的所有的记录。
Blog.objects.filter()函数会返回一个QuerySet,里面包含着满足filter条件的Blog表中的所有的记录。
Blog.objects.exclude()函数会返回一个QuerySet,里面包含着不满足filter条件的Blog表中的所有的记录。
Blog.objects.get()上面的三个函数都无论查到的结果中有几条记录,都会以集合的方式返回,唯独get函数只返回一条记录,比如我要查id=2019的记录,执行语句Blog.objects.get(id='2019'),当Bolg中不存在满足条件的记录时会报异常DoesNotExist,当Blog中满足条件的记录的数量大于1时,也会报异常MultipleObjectsReturned

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值