`
sodler
  • 浏览: 13663 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

django 查询集选择器(代替不等号)

 
阅读更多

django 中用于取代sql,用于数据表查询的语法叫做ORM查询集,但是在实用查询集的时候一般只能通过filter获取等值属性,例如:OB.filter(number=3),而一旦使用不等号,就会报错例如:

q = OB.objects.filter(number > item.number)
NameError: name 'number' is not defined

或者:

q = OB.objects.filter('number' > 'item.number')
TypeError: 'bool' object is not iterable

但是实际情况上来说,很多时候直接使用不等号会更加方便减少多行代码,减少逻辑混乱的风险,而django就提供了过滤器这一选项。

 

以下便是几种较常用的选择器:(带有OB的表示是对象自带的属性)

__exact        精确等于

q = OB.objects.filter(name__exact='apPle')
获取name属性为apPle的数据,大小写严格对应

 

__iexact    精确等于 忽略大小写

q = OB.objects.filter(name__exact='apPle')
获取name属性为apple(APPLE或Apple。。。)的数据,忽略大小写

 

__contains    包含

q = OB.objects.filter(name__contains='list')
获取name属性中包含list字符的数据

 

__icontains    包含 忽略大小写,但是对于sqlite来说,contains的作用效果等同于icontains

同上但是忽略大小写

__gt    大于

q = OB.objects.filter(date__gte=datetime.date.today())
获取date属性大于当前时间的数据(时间上的大于应该指的是过去吧)

 

__gte    大于等于

q = OB.objects.filter(number__gte=3)
获取number属性大于3的数据

 

__lt    小于

q = OB.objects.filter(OB_number__lt=OB_pro_number)
获取自带的number属性值小于自带的pro_number属性的数据 

__lte    小于等于

 

__in     存在于一个list范围内

q = OB.objects.filter(name__in=listA)
获取name属性的值在listA表单中的数据,例如获取名字在优惠商品名称数组中的商品

 

__startswith   以...开头

q = OB.objects.filter(name__startswith='AP')
获取name属性以AP开头的数据(大小写严格)

 

__istartswith   以...开头 忽略大小写......效果同上,但是忽略大小写

__endswith     以...结尾

q = OB.objects.filter(name__startswith='LE')
获取name属性以LE结尾的数据,大小写严格

 

__iendswith    以...结尾,忽略大小写......效果同上,但是忽略大小写

__range    在...范围内

q = OB.objects.filter(date__range=["2011-01-01", "2011-01-31"])
获取date属性值在这个日期之间的数据

 

__year       日期字段的年份

q = OB.objects.filter(date__year=2017)
获取date属性的年份字段为2017的数据

 

__month    日期字段的月份

q = OB.objects.filter(date__year=4)
获取date属性的月份字段为4的数据

 

__day        日期字段的日

q = OB.objects.filter(date__year=20)
获取date属性的日期字段为20的数据

 

__isnull=True/False

q = OB.objects.filter(name__isnull=True) 
获取name属性值为空的数据

同时与filter相反的Object属性为exclude

filter表示=,exclude表示!=

将上述语句中的filter替换成exclude将获得相反的数据

分享到:
评论

相关推荐

    Django 查询数据库并返回页面的例子

    今天小编就为大家分享一篇Django 查询数据库并返回页面的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    解决Django中多条件查询的问题

    今天小编就为大家分享一篇解决Django中多条件查询的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    基于Django的机票查询与订票系统(Python+Django)

    开发语言:Python/python...该系统遵循MVC开发模式,采用Django框架,使用Mysql开源数据库,实现了用户注册和登录,机票的查询,预订等功能.该系统的实现提高了航空公司的服务质量和工作效率,同时也极大地方便了广大乘客.

    Django城市信息查询功能

    基于 Pythgo的 Django 框架,编程实现一个 WEB 程序,为用户提供 城市信息查询功能。用户可输入一个城市名,输出其所在省份名称和邮编 等信息。例如,输入“桂林市”,输出“广西壮族自治区”和“541000”等 城市...

    利用django自带的filte实现精准、模糊查询

    利用django自带的filte实现精准、模糊查询,包括复选框多值准确查询,输入框精准和模糊查询,日期区间查询。

    Django分页器代码

    Python后台开发框架Django的分页器代码,有需要可以下载

    Django2+ MySQL8 数据插入和查询

    Django2+ MySQL8 数据插入和查询 Django2+ MySQL8 数据插入和查询

    django电子商务网站源码.zip

    django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django...

    Django实现商城网站源码.zip

    Django实现商城网站源码 Django实现商城网站源码 Django实现商城网站源码 Django实现商城网站源码 Django实现商城网站源码 Django实现商城网站源码 Django实现商城网站源码 Django实现商城网站源码 Django...

    Django客户管理系统源码.zip

    Django客户管理系统源码 Django客户管理系统源码 Django客户管理系统源码 Django客户管理系统源码 Django客户管理系统源码 Django客户管理系统源码 Django客户管理系统源码 Django客户管理系统...

    django笔记 django笔记

    django笔记 django笔记

    Django版Django版

    Django版 Django版 Django版Django版Django版

    django项目实例(django 简易博客开发)

    前几天写的django 简易博客开发记录,贴个链接吧 ...django 简易博客开发 2 模板和数据查询 http://www.cnblogs.com/cacique/archive/2012/09/30/2709143.html django 简易博客开发 3 静态文件、from 应用与自定义 ...

    django-web-query:扩展 django 查询集,使其能够直接从 Web 浏览器调用

    它现在所做的只是从 django 上的模型中调用查询集。 GET 方法是我测试的,其他方法很快就会实现。 现在仅以 json 格式响应 ##configuration 只需将其放在您的 urls.py 中,其中模型是您的应用程序模型: from ...

    基于Django的个人网盘源码.zip

    基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django...

    Python基于Django的就业系统源码.zip

    基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于...

    Django内置过滤器帮助文档.pdf

    文档包含了Django1.8版本的全部内置过滤器。 csdn强制要积分,下载不来的就留邮箱。

    Django documentation Django API

    Django documentation Django API Django

    Django QuerySet查询集原理及代码实例

    当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。 filter():返回满足条件的数据。 exclude():返回满足条件之外的数据。 order_by():对结果进行排序。 对查询集可以...

    django执行数据库查询之后实现返回的结果集转json

    主要介绍了django执行数据库查询之后实现返回的结果集转json,希望对大家有所帮助。一起跟随小编过来看看吧

Global site tag (gtag.js) - Google Analytics