`
sodler
  • 浏览: 14684 次
  • 性别: 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 查询数据库并返回页面的例子

    本文将介绍在Python框架Django中如何进行数据库查询以及将查询结果渲染到Web页面上的过程。Django是一个高级的、开源的Web应用框架,它遵循模型-视图-控制器(MVC)设计模式,提供了快速开发Web应用的便捷性。 首先...

    详解Django的model查询操作与查询性能优化

    在Django中还提供了查询集(QuerySet)的条件筛选。如上所述,可以使用filter()方法来获取满足特定条件的记录。如果需要获取某个字段值大于、小于、大于等于或小于等于某个值的记录,可以分别使用id__gt、id__lt、id...

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

    在Django中,进行多条件查询是常见的需求,特别是在开发复杂的Web应用时。本文将详细介绍如何在Django中解决多条件查询的问题,并提供一个实际的示例。 首先,我们需要了解Django的ORM(Object-Relational Mapping)...

    Django分页器代码

    首先,Django内置的分页器是`django.core.paginator`模块,但有时开发者可能会选择第三方库,如`django-pure-pagination`,因为它提供了更简洁、灵活的用法。`django-pure-pagination`是一个轻量级的分页器,它简化...

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

    在Python的Web开发框架Django中,`filters`是一个强大的工具,用于在数据库查询时进行数据筛选和过滤,从而实现精准或模糊查询。本篇将深入探讨如何利用Django的`filter`功能来处理多种查询场景,包括复选框多值准确...

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

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

    Django城市信息查询功能

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

    使用DJANGO框架的URL缩短器.zip

    使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器...

    Django2+ MySQL8 数据插入和查询

    本主题将深入探讨如何在Django2版本中结合MySQL8数据库进行数据的插入和查询操作。MySQL8作为广泛使用的开源关系型数据库管理系统,为开发者提供了强大的数据存储和管理功能。 首先,我们需要确保安装了Django以及...

    Django 如何使用日期时间选择器规范用户的时间输入示例代码详解

    Django 本身并不直接支持内置的日期时间选择器,但我们可以借助第三方库或 HTML5 的 input 标签来实现。 在上面的示例中,Django 项目使用了 DateTimePicker 插件,这是一个基于 jQuery 的日期时间选择器。以下是...

    django电子商务网站源码.zip

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

    django ORM机制的总结

    可以使用缓存查询集来提高查询性能。 比较对象 可以使用比较对象来比较两个对象。 删除对象 可以使用删除对象来删除数据库中的对象。 一次修改多个对象 可以使用批量操作来修改多个对象。 关系对象 可以使用关系...

    Django练习题.zip

    在Django中,ORM通过模型(Model)来定义数据结构,然后通过查询集(QuerySet)进行数据操作。例如,创建一个用户模型,可以通过`create()`方法创建新用户,`filter()`或`get()`方法查询用户,`update()`或`delete()...

    Django实现商城网站源码.zip

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

    django笔记 django笔记

    安装Django可以通过Python的包管理器pip进行,命令为`pip install django`。设置项目时,使用`django-admin startproject project_name`创建新项目,然后通过`python manage.py startapp app_name`创建应用。 3. *...

    Django客户管理系统源码.zip

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

    Python-Django搭建高校信息查询网站

    Python-Django是构建高效、可扩展的Web应用的热门选择,尤其在教育信息化领域,它被广泛用于开发信息查询类网站。在这个项目中,我们利用Python的Django框架搭建了一个针对高校信息的查询平台,旨在为学生、家长及...

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

    在Django框架中,数据库查询后的结果集通常是一个QuerySet对象,它包含了多个模型实例。当需要将这些数据传递给前端,例如以JSON格式展示时,需要进行一些处理。本文将详细介绍如何在Django中将数据库查询结果转换为...

    Django查询数据库的性能优化示例代码

    Django数据层提供各种途径优化数据的访问,一个项目大量优化工作一般是放在后期来做,早期的优化是“万恶之源”,这是前人总结的经验,不无道理。如果事先理解Django的优化技巧,开发过程中稍稍留意,后期会省不少的...

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

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

Global site tag (gtag.js) - Google Analytics