id 字段:

id__lt:id 小于,id__gt:id 大于

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(id__gt=1, id__lt=4) # 查询 1<id<4 的数据
  13. print(ret)

运行结果:

id__in=[]:获取所有 id 为该列表元素的数据

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(id__in=[1, 3, 4]) # 查询 id 为 1、3、4 的数据
  13. print(ret)

运行结果:

id__range=[]:获取 id 范围的数据

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(id__range=[2, 4]) # 获取 id 为 2-4 的数据
  13. print(ret)

运行结果:

字符串字段:

字段名__contains:获取字段中含有指定字符串的数据

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(name__contains="ac") # 获取 name 字段包含 ac 的数据
  13. print(ret)

运行结果:

字段名__icontains:获取字段中含有指定字符串的数据,大小写不敏感

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(name__icontains="Ac") # 获取包含 name 字段包含 Ac 的数据(大小写不敏感)
  13. print(ret)

运行结果:

字段名__startswith:获取字段中以指定字符串开头的数据

字段名__istartswith:获取字段中以指定字符串开头的数据,大小写不敏感

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(name__startswith="Ja") # 获取 name 字段中以 Ja 开头的数据
  13. print(ret)
  14. ret = models.Human.objects.filter(name__istartswith="j") # 获取 name 字段中以 j 开头的数据,忽略大小写
  15. print(ret)

运行结果:

字段名__endswith:获取字段中以指定字符串结尾的数据

字段名__iendswith:获取字段中以指定字符串结尾的数据,大小写不敏感

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(name__endswith="m") # 获取 name 字段中以 m 结尾的数据
  13. print(ret)
  14. ret = models.Human.objects.filter(name__iendswith="Ne") # 获取 name 字段中以 Ne 结尾的数据,大小写不敏感
  15. print(ret)

运行结果:

date 字段:

date字段名_year:获取该 date 字段中符合 year 条件的数据

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(birthday__year=2005) # 获取 birthday 字段中 year 为 2005 的数据
  13. print(ret)

运行结果:

date字段名_month:获取该 date 字段中符合 month 条件的数据

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(birthday__month=8) # 获取 birthday 字段中 month 为 8 的数据
  13. print(ret)

运行结果:

date字段名_day:获取该 date 字段中符合 day 条件的数据

  1. import os
  2.  
  3. if __name__ == '__main__':
  4. # 加载 Django 项目的配置信息
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
  6. # 导入 Django,并启动 Django 项目
  7. import django
  8. django.setup()
  9.  
  10. from app01 import models
  11.  
  12. ret = models.Human.objects.filter(birthday__day=15) # 获取 birthday 字段中 day 为 15 的数据
  13. print(ret)

运行结果:

Python - Django - ORM 双下划线的更多相关文章

  1. python中那些双下划线开头得函数和变量--转载

    Python中下划线---完全解读     Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用'from module import *'导入 __xxx__ 系统定义名字 __x ...

  2. python python中那些双下划线开头的那些函数都是干啥用用的

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  3. python中那些双下划线开头得函数和变量

    Python中下划线---完全解读     Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __x ...

  4. 【编程开发】Python隐藏属性——使用双下划线标识私有属性,外部不可直接访问

           from:https://zhuanlan.zhihu.com/p/30553607 小编在最初使用上Python之后,就一发不可收拾,人生苦短.我用Python,不光是因为其优雅简洁, ...

  5. Python中被双下划线包围的魔法方法

    基本的魔法方法 __new__(cls[, ...]) 用来创建对象 1. __new__ 是在一个对象实例化的时候所调用的第一个方法 2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __i ...

  6. Django 数据库查询集合(双下划线连表操作)

    Django是一款优秀的web框架,有着自己的ORM数据库模型.在项目中一直使用django数据库,写一篇文章专门记录一下数据库操作.略写django工程创建过程,详写查询过程.可以和sqlalche ...

  7. Django ORM字段类型 单表增删改查 万能的双下划线

    1.ORM三种模型 模型之间的三种关系:一对一,一对多,多对多. 一对一:实质就是在主外键(author_id就是foreign key)的关系基础上,给外键加了一个UNIQUE=True的属性: 一 ...

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

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

  9. $Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境

    在Python脚本中调用Django环境. import osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETTING ...

随机推荐

  1. vs2010出现红色波浪错误提示但运行通过

    1.环境:xp+VS2010 2.问题:突然发现编辑器里的代码在没有错误的地方提示很多不存在的错误,显示红色波浪线,但能顺利编译运行. 3.解决: 对于32位机来说,先查看注册表: [HKEY_CLA ...

  2. leetcode解题报告(32):Teemo Attacking

    描述 In LLP world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poison ...

  3. leetcode 838

    我发现我非常不擅长解决这种 ummm充满了各种逻辑判断的问题 orz! 因为总是漏少几种情况(很绝望orz) 这道题我是这么判断的 temp为更改后的字符串,dominoes为原字符串 对于原字符串, ...

  4. UOJ73 【WC2015】未来程序

    题目描述:给出输入和暴力程序,求输出.共10个测试点. 测试点1: 输入\(a,b,c\),求\(a\times b \ \mathrm{mod} \ c\) \(a,b,c\)属于long long ...

  5. Unity 3d 实现物体跟随摄像机视野运动

    https://blog.csdn.net/qq_31411825/article/details/61623857 Unity 3d 实现物体跟随摄像机视野运动Created by miccall ...

  6. vuex(用了vue就上了一条不归路的贼船)

    一.Vuex是干什么用的? 它是用于对复杂应用进行状态管理用的(官方说法是它是一种状态管理模式). “杀鸡不用宰牛刀”.对于简单的项目,根本用不着Vuex这把“宰牛刀”.那简单的项目用什么呢?用Vue ...

  7. 内核中PID_HANDLE_OBJECT等互相转换

    目录 一丶简介 1.进程pid 转化为 HANDLE 2.Handle --------> 转化为 PID 3.Pid ------> Object(EPROCESS) 4. HANDLE ...

  8. CF1209题解

    E 每列都可以沿下滚动若干次,使得各行最大值之和最大 对每列的元素计算最大值,降序排,显然取前\(min(n,m)\)个列处理即可 比较巧妙的动规,设\(f(i,S)\)为前\(i\)列,已经确定最大 ...

  9. C++标准库分析总结(八)——<仿函数、适配器、istream_iterator、ostream_iterator、bind>

    一.仿函数定义 仿函数是STL中最简单的部分,存在的本质就是为STL算法部分服务的,一般不单独使用.仿函数(functors)又称为函数对象(function objects),虽然函数指针虽然也可以 ...

  10. Oraclecloud创建时没有上传公钥的解决办法

    https://blogs.oracle.com/cloud-infrastructure/recovering-opc-user-ssh-key-on-oracle-cloud-infrastruc ...