Django查找数据库objects.filter() 和 排序order_by 和 Q()与或非 和 F()属性之间比较 的用法

objects.filter()

条件选取querySet的时候,filter表示=,exclude表示!=,querySet.distinct() 去重复

__exact 精确等于 like ‘aaa’ __iexact 精确等于 忽略大小写 ilike ‘aaa’

__contains 包含 like ‘%aaa%’ __icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。

__gt 大于

__gte 大于等于

__lt 小于

__lte 小于等于

__in 存在于一个list范围内

__startswith 以…开头

__istartswith 以…开头 忽略大小写

__endswith 以…结尾

__iendswith 以…结尾,忽略大小写

__range 在…范围内

__year 日期字段的年份

__month 日期字段的月份

__day 日期字段的日

__isnull=True/False 空查询

order_by

升序

XXXX.objects.all().order_by(‘id‘)

XXXX.objects.all().filter(client=client_id).order_by(‘check_in‘)

降序

XXXX.objects.all().order_by(‘-id‘)

XXXX.objects.all().filter(client=client_id).order_by(‘-check_in‘)

Q()    |或    &与(逗号效果一样)    ~非(不等于)

导入from django.db.models imports Q

XXXX.objects.filter(Q(id__gt=3)|Q(bread__gt=2))

F()

导入from django.db.models imports F

查询aaa大于bbb的信息

XXXXX.objects.filter(aaa__gt=F(‘bbb‘))

查询aaa大于bbb两倍的信息

XXXXX.objects.filter(aaa__gt=F(‘bbb‘)*2)

原文地址:https://www.cnblogs.com/LaoMuJi/p/11216394.html

时间: 2024-11-05 03:47:04

Django查找数据库objects.filter() 和 排序order_by 和 Q()与或非 和 F()属性之间比较 的用法的相关文章

Django入门   数据库的ORM操作之一对多

Django对数据库的是通过ORM实现.什么叫做ORM呢?简单来说,我们通过sql语句查询一张表的所有数据的语句如下  select * from test.而Django中用到的表都是在models.py文件里定义.所以我们要查查询test表里的数据可以通过 test_obj = models.test.objects.all()来获取test表里所有数据的对象.再通过 test_obj.values()方法将每一行数据的里的各个字段以key和value的字典形式读取出来.这就叫ORM操作.

django 操作数据库--orm(object relation mapping)---models

思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Entity Framework django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表. 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 三层架构 创建表 1.创建Model,之后可以根

Django之数据库操作

1.创建model表,在setting中添加app名称.配置数据 from django.db import models class userinfo(models.Model): #如果没有models.AutoField,默认会创建一个id的自增列 name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField() 运行:python manage.py makemigra

Django基础--数据库操作

Django中的模型(model)本质是数据库中的表(table),当作为开发者时,总会涉及到数据库的操作,而Django中也提供了一些函数,实现sql语句中的增删改查: 惯例,先看模型: 1 # coding:utf-8 2 import django.utils.timezone as timezone 3 from django.db import models 4 from blast_service.models import DiskInfo 5 # Create your mode

django models 数据库操作

django models 数据库操作 创建模型 实例代码如下 from django.db import models class School(models.Model): pass class Message(models.Model): pass class Teacher(models.Model): pass class Student(models.Model): GENDER_CHOICES = ( ('male', "男"), ('female', "女&q

Django操作数据库

引入models的定义 from app.models import  myclass class  myclass(): aa =  models. CharField (max_length=None) bb =  models. CharField (max_length=None) def __unicode__(self): return self.aa 增 添加一行数据1 add = myclass(aa='wahaha',bb='hahawa' ) add.save() #不sav

django的数据库操作回顾

1.数据库操作 - 单表操作 - all - filter models.tb.objects.filter(id=123) dic = {'id': 123, 'age__gt': 3} models.tb.objects.filter(**dic) - count - order_by ... - 一对多 # id name 1 河北 2 广东 3 山东 class Province(models.Model): name = models.CharField(max_length=32,)

django中的objects.get和objects.filter方法的区别

为了说明它们两者的区别定义2个models class Student(models.Model): name = models.CharField('姓名', max_length=20, default='') age = models.CharField('年龄', max_length=20, default='') class Book(models.Model): student = models.ForeignKey(Student) 一.先说下django的obj.get():

python之django的objects.get和objects.filter方法

为了说明它们两者的区别定义2个models class Student(models.Model): name = models.CharField('姓名', max_length=20, default='') age = models.CharField('年龄', max_length=20, default='') class Book(models.Model): student = models.ForeignKey(Student) 一.先说下django的obj.get():