介绍一个可以以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()

ORM常用的13个方法的更多相关文章

  1. Django ORM 常用的13个方法

    介绍一个可以以py脚本方式运行ORM操作的方法: 可在项目内新建个py文件,复制项目内manage.py文件中的以下代码: if __name__ == "__main__": o ...

  2. Python--day69--ORM查询的13种方法

    ORM查询的13种方法: 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> ...

  3. Django框架之第六篇(模型层)--单表查询和必知必会13条、单表查询之双下划线、Django ORM常用字段和参数、关系字段

    单表查询 补充一个知识点:在models.py建表是 create_time = models.DateField() 关键字参数: 1.auto_now:每次操作数据,都会自动刷新当前操作的时间 2 ...

  4. ORM( ORM查询13种方法3. 单表的双下划线的使用 4. 外键的方法 5. 多对多的方法 ,聚合,分组,F查询,Q查询,事务 )

    必知必会13条 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或 ...

  5. python 之 Django框架(ORM常用字段和字段参数、关系字段和和字段参数)

    12.324 Django ORM常用字段 .id = models.AutoField(primary_key=True):int自增列,必须填入参数 primary_key=True.当model ...

  6. ORM常用字段及查询

    目录 ORM常用字段及参数 创建表 ORM常用字段 ORM字段参数 ORM表关系创建 ForeignKey OneToOneField ManyToManyField 多对多三种创建方式 单表查询 q ...

  7. ORM常用字段及方式

    创建小型数据库 模型层 ORM常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. Integer ...

  8. Django的ORM常用查询操作总结(Django编程-3)

    Django的ORM常用查询操作总结(Django编程-3) 示例:一个Student model: class Student(models.Model): name=models.CharFiel ...

  9. 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载

    浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...

随机推荐

  1. JavaScript 正则表达式匹配成功后的返回结果

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79005604 使用正则表达式EDIT 正则表达式可以被用于RegExp的exec ...

  2. oracle批量新增更新数据

    本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法: 批量新增数据 对于批量新增数据,介绍两种方法 ...

  3. SQL Server ---------- 分离数据库 生成 .mdf文件

    1.首先查看你要分离的数据库存储的位置 选中需要分离的数据数据库右击鼠标点击属性 要是记不住建议    复制一下 2.分离数据库      生成  .mdf 文件 右击 -----> 任务 -- ...

  4. Asp.net core 简单介绍

    Asp.net core 是一个开源和跨平台的框架,用于构建如WEB应用,物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.asp.net core 应用可运行.net和.net ...

  5. WIN10 报错 "此共享需要过时的SMB1协议,而此协议是不安全"的解决方法

    发现新安装的win10能看到其他计算机,但不能共享其他计算的共享文件/夹,出现如下情况:在浏览器里输入:\IP 不能访问到计算机的共享文件夹,或者在桌面上新建一个指向到其他计算机共享文件/夹的快捷方式 ...

  6. 【转载】 C#中ArrayList使用ToArray方法转换为数组

    在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,可以使用ArrayList中的ToArray方法将ArrayList集合对象转换为数组,ToArray方法有2个重载形式,其一为vi ...

  7. windows环境下基于nginx搭建rtmp服务器

    基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...

  8. 锁、分布式锁、无锁实战全局性ID

    1.为什么要使用锁 当发生并发时,会产生多线程争夺一个资源,为保证资源的唯一性. JVM锁:对象锁,死锁,重入锁,公平锁,偏向锁 分布式锁:数据库 nosql .zookeeper 面试题:如何排查死 ...

  9. 修改ceph的IP地址

    目录 修改步骤如下 1.导出mon配置 2.修改mon配置 3.修改ceph的配置文件 4.关闭ceph集群(建议将集群内的所有节点中的ceph都关闭) 5.修改服务器IP 6.导入修改后的mon 7 ...

  10. angular6 导出Excel文件

    1.安装file-saver.@types/file-saver和xlsx npm install file-saver --save npm install @types/file-saver -- ...