Django ORM 常用的13个方法

介绍一个可以以py脚本方式运行ORM操作的方法:

可在项目内新建个py文件,复制项目内manage.py文件中的以下代码:

if __name__ == "__main__":

     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ORM1.settings")

     import django  # 手动添加导入

     django.setup()  # 启动

     form app01 import models  # 从项目app内导入models

然后就可以以右键运行的方式来操作ORM语句了.

一. 必会的13条方法:

   1. models.Book.objects.all()  # 获取到所有的书籍对象,结果是对象列表

   2. models.Book.objects.get(条件)  # 获取符合条件的对象

   3. models.Book.objects.filter(条件)  # 筛选所有符合条件的,结果是对象列表

   4. models.Book.objects.exclude(条件)  # 筛选出所有不符合条件的,结果是对象列表

   5. models.Book.objects.all().values( )  # 字典列表,[ {id:1,name:20} , {id:2,name:18} ]

       values(‘id’)括号内不指定时显示全部,如指定则只显示指定的,[ {id:1} , {id:2,} ]

   6. models.Book.objects.all().values_list( )  # 元组列表,[ (1,20) , (2,18) ]同上,指定时显示指定内容

   7. models.Book.objects.all().order_by(‘id’)  # 按照id升序就行排列

      models.Book.objects.all().order_by(‘-id’)  # 按照id降序就行排列

      models.Book.objects.all().order_by(‘age’ , ‘-id’)  # 先按age升序,age相同的按id进行降序排列

   8. models.Book.objects.all().order_by(‘id’).reverse()  # 对结果反转; 注意reverse前必须排序,

   否则reverse无效; 或在model.py文件中Book类中的Meta中指定ordering=(‘id’ , )注意逗号必须有

 

   9. distinct():  # 去重,当获取到的结果Queryset列表中同一对象出现多次时去重,只留一个

   10. models.Book.objects.all().count()  # 计数,可统计结果个数,如对Queryset内元素数进行统计.

   11. models.Book.objects.all().first()  # 获取结果中的第一条,即使前面结果列表为空,也不会报错

   12. models.Book.objects.filter().last()  # 获取结果中的最后一条

   13.models.Book.objects.filter().exists()  # 判断Queryset列表是否有东西,结果为True或False; 

二. 小结:

   返回对象列表(Queryset)的方法有:

   all()   filter()   ordey_by()   exclude()   values()   values_list()   reverse()   distinct()

   返回单个对象的方法有:

   first()   last()   get()   create()创建一个对象,且返回刚创建的对象

   判断布尔值的有:

   exists()

   返回数字的有:

   count()

转载于:https://www.cnblogs.com/RyanJin/p/10187143.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值