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

最新文章

  1. Virtualbox虚拟机配置CentOS7.0静态网络
  2. Longest Substring Without Repeating Characters(Difficulty: Medium)
  3. 关于JAVA学习计划和感想
  4. 主题:Android、iPhone和Java三个平台一致的加密工具
  5. mysql同主机数据库复制
  6. phpcms v9 源码解析(3)pc_base::creat_app()
  7. Blog CSS
  8. 无人机DLG生产作业流程
  9. wikioi 1154 能量项链 (2006年NOIP全国联赛提高组)
  10. html文件中文在浏览器中显示乱码问题解决
  11. dojo/dom源码
  12. paper资料
  13. HDU 1562 Oil Deposits
  14. CAS 之 Hello World(二)
  15. MVC5 Razor视图中不规范书写导致的编译问题
  16. 【Angular专题】——(2)【译】Angular中的ForwardRef
  17. Java的clone():深复制与浅复制
  18. 修改了my.ini没有效果,MySql的字符集还是没有变成utf8——mysql中文乱码
  19. VUE-003-前端表格数据展示时,设置单元格(el-table-column)保留空格和换行
  20. list quen队列

热门文章

  1. d2admin框架学习
  2. c#自带压缩类实现的多文件压缩和解压
  3. js模板引擎mustache介绍及实例
  4. 函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。
  5. Idea全部快捷键+自行修改快捷键
  6. 阿里云ECS服务器CentOS7配置vsftps及其问题解决
  7. index unique scan 与index range scan等的区别
  8. 在一个formitem中多input的验证方法-antd的验证
  9. 为什么CSS,JS以及图片等这些资源的路径需要加问号
  10. C编程题总结