zoukankan      html  css  js  c++  java
  • Django ORM 常用的13个方法

    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()

    函数名称或修饰词 说明
    filter() 返回符合指定条件的QuerySet
    exclude() 返回不符合指定条件的QuerySet
    ordey_by() 串接到QuerySet之后,针对某一指定的字段进行排序
    all() 返回所有的QuerySet
    get() 获取指定符合条件的唯一元素,如果找不到或有一个以上符合条件,都会产生exception
    first()/last() 获取第1个和最后一个元素
    aggregate() 可以用来计算数据项的聚合函数
    exists() 用来检查是否存在某指令条件的记录,通常附加在filter后面
    update() 用来快速更新某些数据记录中的字段内容
    delete() 删除指定的记录
    iexact 不区分大小写的条件设置
    contains/icontains 设置条件为含有某一字符串就符合,如SQL语句中的LIKE和ILIKE
    in   提供一个列表,只要符合列表中任何一个值均可
    gt/gte/lt/le   大于/大于等于/小于/小于等于
  • 相关阅读:
    Django学习-9-ORM多对多操作
    Django学习-8-模板渲染的一些特性
    Django学习-7-ORM操作
    Django学习-6-路由系统
    Hadoop 知识
    最全的Spark基础知识解答
    windows server 2008 R2 远程连接用户数修改
    Windows 2008 R2 SP1部署WSUS 3.0 SP2
    Windows Server2008 R2 设置NAT 让Hyper-V连接Internet
    免费好用的Microsoft iSCSI Software Target 3.3
  • 原文地址:https://www.cnblogs.com/skbarcode/p/13658402.html
Copyright © 2011-2022 走看看