Django视图之ORM数据库查询操作API
查询表记录
查询相关API
- 操作:models.表名.objects.方法()
- all(): 查询所有结果
- filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
- get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,
- 如果符合筛选条件的对象超过一个或者没有都会抛出错误。
- exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
- values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
- model的实例化对象,而是一个可迭代的字典序列
- values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
- order_by(*field): 对查询结果排序
- reverse(): 对查询结果反向排序
- distinct(): 从返回结果中剔除重复纪录
- count(): 返回数据库中匹配查询(QuerySet)的对象数量。
- first(): 返回第一条记录
- last(): 返回最后一条记录
- exists(): 如果QuerySet包含数据,就返回True,否则返回False
注意:一定区分object与querySet的区别 !!!
object,可以调用内部方法
而queryset则是一个集合
双下划线之单表查询
- models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值
- models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
- models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in
- models.Tb1.objects.filter(name__contains="ven")
- models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感
- models.Tb1.objects.filter(id__range=[1, 2]) # 范围bettwen and
- startswith,istartswith, endswith, iendswith
- 示例:
- def query(request):
- #查询方法API:
- #1 all方法:models.表名.objects.all()
- book_all=models.Book.objects.all() #结果是querySet集合
- # print(book_all)
- #2 filter: models.表名.objects.filter()
- ret=models.Book.objects.filter(title='PHP') #结果是querySet集合
- ret2=models.Book.objects.filter(nid=1) #结果是querySet集合
- ret3=models.Book.objects.filter(author='Alex',price=35) #结果是querySet集合,且的关系,两个条件都要满足
- # print(ret)
- # 3 get:models.表名.objects.get()
- ret4=models.Book.objects.get(nid=3) #model对象,如果取不到值则会报错
- # print(ret4,ret4.price)
- #4 exclude:排除条件,取非
- ret5 = models.Book.objects.exclude(author='oldboy')
- #5 values方法
- # ret6=models.Book.objects.filter(author='Alex').values('title','price')
- # print('ret6',ret6)
- # #6 values_list方法
- # ret7 = models.Book.objects.filter(author='Alex').values_list('title', 'price')
- # print('ret7', ret7)
- # ret8 = models.Book.objects.filter(author='Alex').values('author').distinct()
- # print('ret8',ret8)
- #双线划线
- ret9 = models.Book.objects.filter(price__gt=30)
- ret10 = models.Book.objects.filter(title__startswith='P')
- ret11 = models.Book.objects.filter(id_lt=4,id_gt=2) #id 大于2小于4
- print('ret10',ret10)
- return HttpResponse("OK")
Django视图之ORM数据库查询操作API的更多相关文章
- Django视图之ORM连表操作一
1 项目路径结构树 2 models创建类 from django.db import models class UserType(models.Model): ''' 用户类型 ''' title ...
- ORM数据库查询操作之基于双下划线的跨表查询
创建表结构 from django.db import models class Book(models.Model): title=models.CharField(max_length=32) ...
- Django的ORM常用查询操作总结(Django编程-3)
Django的ORM常用查询操作总结(Django编程-3) 示例:一个Student model: class Student(models.Model): name=models.CharFiel ...
- Django框架05 /orm单表操作
Django框架05 /orm单表操作 目录 Django框架05 /orm单表操作 1. orm使用流程 2. orm字段 3. orm参数 4. orm单表简单增/删/改 5. orm单表查询 5 ...
- Django 学习 之ORM聚合查询分组查询与F查询与Q查询
一.聚合查询和分组查询 1.聚合查询aggregate 关于数据表的数据请见上一篇:Django 学习 之ORM多表操作(点我) aggregate(*args, **kwargs),只对一个组进行聚 ...
- Django框架06 /orm多表操作
Django框架06 /orm多表操作 目录 Django框架06 /orm多表操作 1. admin相关操作 2. 创建模型 3. 增加 4. 删除 5. 修改 6. 基于对象的跨表查询 7. 基于 ...
- 数据库查询操作(fetchone,fetchall)
数据库查询操作 Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据. fetchone(): 该方法获取下一个查询结果集.结果集是一个 ...
- django 中连接mysql数据库的操作步骤
django中连接mysql数据库的操作步骤: 1 settings配置文件中 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mys ...
- django基础 -- 5. ORM 数据库操作
一. ORM 对象关系映射 类 ------ 表 类对象 ------ 记录 类属性 ------ 字段 二. 连接数据库配置 1.在 setting.py 文件中重新设置 ...
随机推荐
- HDOJ.2187 悼念512汶川大地震遇难同胞——老人是真饿了(贪心)
悼念512汶川大地震遇难同胞--老人是真饿了 点我挑战题目 题目分析 每组数据给出所拥有的钱数,和大米的种类.每种大米给出单价(每单位重量)和大米的重量.求能买到的大米最大重量是多少? 采用贪心算法. ...
- cgroups 命令集
cgroups 命令集 最后介绍,功能最为强大的控制组(cgroups)的用法.cgroups 是 Linux 内核提供的一种机制,利用它可以指定一组进程的资源分配. 具体来说,使用 cgroups, ...
- Codeforces Round #333 (Div. 2) B
B. Approximating a Constant Range time limit per test 2 seconds memory limit per test 256 megabytes ...
- ubuntu18.04server设置静态IP
16.04以后的版本配置静态IP是类似这样的文件 /etc/netplan/50-cloud-init.yaml 1.查询网卡名称 2.修改配置文件/etc/netplan/50-cloud-init ...
- JavaScript知识之判断字符串中出现最多的字符及次数
var str = 'asdddasdfdseeeeeweeeeeeeeeeeee'; var json = {}; // 定义json一个对象 for(var i = 0; i < str.l ...
- 南阳ACM 题目275:队花的烦恼一 Java版
队花的烦恼一 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 ACM队的队花C小+经常抱怨:"C语言中的格式输出中有十六.十.八进制输出,然而却没有二进制输出, ...
- Scala环境安装设置
Scala语言可以安装在任何类UNIX或Windows系统.要安装Scala,必须先安装Java1.5或更高版本安装在计算机上. Windows上安装Scala: 步骤(1):JAVA设置: 首先,必 ...
- UIToolBar的半透明属性设置
UIToolBar的半透明属性设置style:Translucent(Ps:长得很像翻译translation) https://www.evernote.com/shard/s227/sh/ ...
- 什么是AMD规范
AMD规范全称是Asynchronous Module Definition,即异步模块加载机制.从它的规范描述页面看,AMD很短也很简单,但它却完整描述了模块的定义,依赖关系,引用关系以及加载机制. ...
- 用python玩微信(聊天机器人,好友信息统计)
1.用 Python 实现微信好友性别及位置信息统计 这里使用的python3+wxpy库+Anaconda(Spyder)开发.如果你想对wxpy有更深的了解请查看:wxpy: 用 Python 玩 ...