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中多条件查询的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
开发语言:Python/python...该系统遵循MVC开发模式,采用Django框架,使用Mysql开源数据库,实现了用户注册和登录,机票的查询,预订等功能.该系统的实现提高了航空公司的服务质量和工作效率,同时也极大地方便了广大乘客.
基于 Pythgo的 Django 框架,编程实现一个 WEB 程序,为用户提供 城市信息查询功能。用户可输入一个城市名,输出其所在省份名称和邮编 等信息。例如,输入“桂林市”,输出“广西壮族自治区”和“541000”等 城市...
利用django自带的filte实现精准、模糊查询,包括复选框多值准确查询,输入框精准和模糊查询,日期区间查询。
Python后台开发框架Django的分页器代码,有需要可以下载
Django2+ MySQL8 数据插入和查询 Django2+ MySQL8 数据插入和查询
django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django...
Django实现商城网站源码 Django实现商城网站源码 Django实现商城网站源码 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 上的模型中调用查询集。 GET 方法是我测试的,其他方法很快就会实现。 现在仅以 json 格式响应 ##configuration 只需将其放在您的 urls.py 中,其中模型是您的应用程序模型: from ...
基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django的个人网盘源码 基于Django...
基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于Django就业系统源码 基于...
文档包含了Django1.8版本的全部内置过滤器。 csdn强制要积分,下载不来的就留邮箱。
Django documentation Django API Django
当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。 filter():返回满足条件的数据。 exclude():返回满足条件之外的数据。 order_by():对结果进行排序。 对查询集可以...
主要介绍了django执行数据库查询之后实现返回的结果集转json,希望对大家有所帮助。一起跟随小编过来看看吧