Django框架数据库ORM查询操作(6)

简介: 【7月更文挑战第6天】```markdownDjango ORM常用数据库操作:1) 查询所有数据2) 根据ID查询 3) 精确查询 4) 分页排序

Django框架在生成数据库的models模型文件后,旧可以在应用中通过ORM来操作数据库了。今天抽空试了下查询语句。以下是常用的查询语句。

以下查询需要引入django的Sum,Count,Q模块

from django.db.models import Sum,Count,Q

导入生成的model数据库表模型文件

from app.models import Model


1、查询所有数据

data = Model.objects.all()


2、根据id查询数据


data = Model.objects.filter(id='00036257bf4cc23480335')


3、根据条件查询单条数据


data = Model.objects.get(name='张三')

4、排序分页查询

  • # 升序查询100条
  • data = Model.objects.order_by('time')[0:100]
  • # 降序查询100条
  • data = Model.objects.order_by('-time')[0:100]



5、多条件排序查询

data = Model.objects.filter(name="张三",class='语文').order_by("score")[0:10]


6、查询总条数

data = Model.objects.filter(class='语文').count()



7、查询指定字段

data = Model.objects.values('col1','col2','col3').filter(name='张三')


8、group By查询各类数据数量

data = Model.objects.values('class').annotate(total=Count('id')).all()



9、group By求各类数据的和

data = Model.objects.values('class').annotate(total=Sum('num')).all()


10、各类like查询

  • # 两边模糊查询
  • data = Model.objects.values('name').filter(school__contains='小学').all()
  • # 开始模糊
  • data = Model.objects.values('name').filter(school__startswith='南城').all()
  • # 结尾模糊
  • data = Model.objects.values('name').filter(school__endswith='学院').all()


11、between查询

data = Model.objects.values('name','class','age').filter(age__range=[10,12]).all()

12、大于 gt 小于 lt gte 大于等于 lte 小于等于

  • # 大于
  • data = Model.objects.filter(indate__gt='2020-01-01').all()
  • # 小于
  • data = Model.objects.filter(indate__lt='2020-01-01').all()
  • # 大于等于
  • data = Model.objects.filter(indate__gte='2020-01-01').all()
  • # 小于等于
  • data = Model.objects.filter(indate__lte='2020-01-01').all()

13、or条件查询

data = Model.objects.filter(Q(age__gt=15) | Q(sex='男'))

14、执行原生sql

  • sql = "select * from t_students where age = 9"
  • data = Model.objects.raw(sql)


15、添加数据

  • data = Model(
  • id = uuid.uuid4(),
  •        name = '张三',
  •        sex = '男',
  •        age = 13
  •    )
  • data.save()



16、更新数据

  • cus = Model.objects.filter(name='张三').all()
  • cus.update(age = 12)


17、删除数据

  • data= Model.objects.filter(name='张三')
  • data.delete()









目录
相关文章
|
12月前
|
人工智能 数据挖掘 API
基于neo4j数据库和dify大模型框架的rag模型搭建——后续补充
基于neo4j数据库和dify大模型框架的rag模型搭建——后续补充
1086 21
基于neo4j数据库和dify大模型框架的rag模型搭建——后续补充
|
12月前
|
Java 数据库 Docker
基于neo4j数据库和dify大模型框架的rag模型搭建
基于neo4j数据库和dify大模型框架的rag模型搭建
3471 35
|
9月前
|
SQL 存储 数据库
Django模型查询与性能调优:告别N+1问题
本文详解Django数据库查询基础与优化技巧,涵盖QuerySet使用、关联查询(一对多/多对多)、N+1查询问题及解决方案(select_related、prefetch_related)、高级查询方法及项目实战中的数据权限控制实现。
368 0
|
10月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
725 0
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
806 14
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
2218 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
数据管理 数据库 数据安全/隐私保护
Django—同一项目不同app使用不同数据库
在Django项目中实现不同app使用不同数据库的配置,可以通过配置多数据库、创建数据库路由和配置路由来实现。通过这种方法,可以有效地将数据隔离到不同的数据库,提高数据管理的灵活性和系统的可扩展性。希望本文能为开发者在Django项目中使用多数据库提供清晰的指导。
455 4
|
Oracle 关系型数据库 Java
|
8月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
516 158
|
8月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

热门文章

最新文章