首页 > 数据库 >Django数据库查询

Django数据库查询

时间:2024-05-24 15:26:48浏览次数:16  
标签:Django name models 数据库 查询 objects import FruitModel apple

一、Django ORM(对象关系映射)进行数据库查询操作

        示例模型:
from django.db import models
from datetime import datetime, timedelta


class FruitModel(models.Model):
    create_time = models.DateTimeField(auto_now_add=datetime.now())
    update_time = models.DateTimeField(auto_now_add=datetime.now())

    name = models.CharField(max_length=10)
    price = models.IntegerField()
    color = models.CharField(max_length=10)

    class Meta:
        db_table = "fruit_model"
        1、查询所有对象
from myapp.models import FruitModel

# 获取模型中所有的对象
all_objects = FruitModel.object.all()
        2、条件查询
from myapp.models import FruitModel

# 获取满足name是apple的对象
filter_objects = FruitModel.objects.filter(name="apple")

# 获取不满足name是apple的对象
excluded_objects = FruitModel.objects.exclude(name="apple")
       3、获取单个对象
from myapp.models import FruitModel

# 根据主键获取单个对象
single_object_by_id = FruitModel.objects.get(id=1)

# 根据其他字段获取单个对象
single_object_by_field = FruitModel.objects.get(name="apple")
        4、排序查询
from myapp.models import FruitModel

# 按照字段升序排序
ordered_objects = FruitModel.objects.order_by("create_time")

# 按照字段降序排序
reversed_ordered_objects = FruitModel.objects.order_by("-create_time")
        5、其他查询
from django.db.models import Q, F

from myapp.models import FruitModel


1、使用Q对象进行复杂的查询逻辑

# 查询名为 “apple” 或者颜色为 “red” 的水果
fruits_queryset = FruitModel.filter(Q(name="apple") | Q(color="red"))

2、使用F对象进行字段之间的比较

# 查询名字和颜色相同的水果
same_name_and_color = FruitModel.objects.filter(name=F("color"))

二、比较运算符

from myapp.models import FruitModel


1、等于(=):FruitModel.objects.filter(name="apple")

2、不等于(!=):FruitModel.objects.exclude(name="apple")

3、大于(>):FruitModel.objects.filter(price__gt=20)

4、大于等于(>=):FruitModel.objects.filter(price__gte=20)

5、小于(<):FruitModel.objects.filter(price__lt=20)

6、小于等于(<=):FruitModel.objects.filter(price__lte=20)

7、指定范围内(in):FruitModel.objects.filter(price__in=[2021, 1, 30])

8、指定范围内(range):FruitModel.objects.filter(price__range=(1, 30))

9、包含指定值(contains):FruitModel.objects.filter(name__contains="apple")

10、包含指定值(icontains不区分大小写):FruitModel.objects.filter(name__icontains="apple")

11、以指定值开头(startswith):FruitModel.objects.filter(name__startswith="apple")

12、以指定值开头(istartswith不区分大小写):FruitModel.objects.filter(name__istartswith="apple")

13、以指定值结尾(endswith):FruitModel.objects.filter(name__endswith="apple")

14、以指定值结尾(iendswith不区分大小写):FruitModel.objects.filter(name__iendswith="apple")

标签:Django,name,models,数据库,查询,objects,import,FruitModel,apple
From: https://blog.csdn.net/xiongqianyuan/article/details/139165844

相关文章

  • 数据库SQL语言基础编程
    目录一、简单查询查询员工表与部门表的笛卡尔积在上述操作的基础上完成连接的选择操作和投影操作对查询数据进行排序操作查询工资超过2500的员工基本信息查询月总收入超过2500的员工基本信息查询工资超过2500的员工的姓名及其所在部门名称查询所有员工的工资、奖金、总......
  • SQL数据库必会的9个基础语句
    数据库代码通常指的是用于创建、查询、更新和删除数据库及其数据的SQL(结构化查询语言)语句。但是,由于数据库的复杂性和多样性,下面我将给出一些基本的SQL代码示例,这些示例可以在关系型数据库管理系统(如MySQL,PostgreSQL,SQLite,Oracle,SQLServer等)中使用。创建数据库:CR......
  • mysql 中索引类型有哪些,以及对数据库的性能的影响?
    索引类型普通索引:允许被索引的数据列包含重复的值唯一索引:可以保证数据记录的唯一性主键索引:是一种特殊的唯一素引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字primarykey来创建联合索引:索引可以覆盖多个数据列全文索引:通过建立倒排索引,可以极大......
  • 分布式任务调度内的 MySQL 分页查询优化
    作者:vivo互联网数据库团队- QiuXinbo本文主要通过图示介绍了用主键进行分片查询的过程,介绍了主键分页查询存在SQL性能问题,如何去创建高效的索引去优化主键分页查询的SQL性能问题。对于数据分布不均如何发现,提供了一些SQL查询案例来进行参考,对MySQLIndexConditionPushdown......
  • Django+Vue前后端分离的原理
    Django+Vue创建项目并实现前后端分离的原理,主要涉及两个主要部分:Django作为后端框架,负责处理业务逻辑和数据;Vue作为前端框架,负责构建用户界面和与后端进行通信。以下是对这一原理的详细讲解:前后端分离的概念:前后端分离是一种软件架构模式,它将应用程序的前端(用户界面)和后端(数......
  • MySQL大师课:36秘技解锁数据库性能与管理新高度?
     ......
  • 社区医院|基于SprinBoot+vue的社区医院管理服务系统(源码+数据库+文档)
    社区医院管理服务系统目录基于SprinBoot+vue的社区医院管理服务系统一、前言二、系统设计三、系统功能设计 1系统功能模块2管理员功能模块3用户功能模块4医生功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博......
  • 家政服务|基于SprinBoot+vue的家政服务管理平台(源码+数据库+文档)
    家政服务管理平台目录基于SprinBoot+vue的家政服务管理平台一、前言二、系统设计三、系统功能设计 1前台模块设计2后台功能模块5.2.1管理员功能模块5.2.2用户功能模块5.2.3服务人员功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推......
  • 家乡特色|基于SprinBoot+vue的家乡特色推荐系统(源码+数据库+文档)
    家乡特色推荐系统目录基于SprinBoot+vue的家乡特色推荐系统一、前言二、系统设计三、系统功能设计 1系统功能模块2管理员功能模块3用户功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设......
  • 家政服务|基于SprinBoot+vue的家政服务管理平台(源码+数据库+文档)
    家政服务管理平台目录基于SprinBoot+vue的家政服务管理平台一、前言二、系统设计三、系统功能设计 1前台模块设计2后台功能模块5.2.1管理员功能模块5.2.2用户功能模块5.2.3服务人员功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推......