首页 > 其他分享 >Django中QuerySet

Django中QuerySet

时间:2024-11-18 14:33:35浏览次数:1  
标签:返回 text QuerySet 查询 字符串 Django

1. QuerySet

概念

  • QuerySet 是 Django ORM (Object-Relational Mapping) 中的对象,用于表示从数据库查询出来的一组数据。
  • 可以看作是数据库查询结果的抽象表示,包含零个或多个模型实例。

特性

  1. 延迟加载:
    • QuerySet 是惰性的,只有在需要时才会执行真正的数据库查询。
    • 例如,调用 list()、遍历、或转换为其他数据结构时会触发查询。
  2. 链式操作:
    • 支持链式方法调用(如 .filter().exclude().order_by()),以构造复杂的查询。
  3. 可迭代:
    • QuerySet 是一个可迭代对象,返回的是模型实例。

示例

from myapp.models import Article

# 获取所有数据
articles = Article.objects.all()  # 返回一个 QuerySet

# 过滤数据
filtered_articles = Article.objects.filter(title__icontains='Python')  # 返回符合条件的 QuerySet

# 转换为列表
articles_list = list(filtered_articles)

# 获取单个对象
article = Article.objects.get(id=1)  # 返回单个对象,而不是 QuerySet

2. str

概念

  • str 是 Python 内置的字符串数据类型,用于表示文本数据。

特性

  1. 不可变:
    • 字符串一旦创建,就无法修改。
    • 对字符串的操作会生成一个新的字符串对象。
  2. 支持多种操作:
    • 拼接、切片、查找、替换等。
  3. 灵活表示:
    • 支持单引号、双引号或三引号的文本表示。

示例

text = "Hello, Django!"

# 字符串拼接
new_text = text + " Welcome to Python."

# 查找子字符串
found = "Django" in text  # 返回 True

# 字符串切片
sliced_text = text[:5]  # 返回 "Hello"

3. 区别总结

属性 QuerySet str
数据类型 Django ORM 对象集合 Python 内置字符串类型
用途 用于查询和操作数据库中的模型实例 表示和操作文本数据
可变性 不可变(本身不能修改,但支持链式生成新查询集) 不可变
延迟执行 是,只有在需要时才查询数据库 无延迟,直接执行
迭代特性 是,返回模型实例集合 是,返回单个字符
操作功能 支持数据库查询操作 (filter, exclude, etc.) 支持文本操作 (split, replace, etc.)
转换 需要通过显式调用 (list(), str()) 转换成字符串 直接表示文本数据,无需转换

标签:返回,text,QuerySet,查询,字符串,Django
From: https://www.cnblogs.com/pmna/p/18552545

相关文章

  • 《Django 5 By Example》阅读笔记:p211-p236
    《Django5ByExample》学习第7天,p211-p236总结,总计26页。一、技术总结1.messages(消息推送)django.contrib.messages。2.OAuth2Django里使用的是social-app-django这个package进行认证操作。3.开发环境使用HTTPS使用django-extensions,werkzeug,pyOpenSSL实现。4.第三方......
  • aiortc && WebSocket and django-channels
    aiortchttps://github.com/aiortc/aiortc/tree/mainWebRTCandORTCimplementationforPythonusingasyncioWhatisaiortc?aiortcisalibraryforWebReal-TimeCommunication(WebRTC)andObjectReal-TimeCommunication(ORTC)inPython.Itisbuilton......
  • 《Django 5 By Example》阅读笔记:p165-p210
    《Django5ByExample》学习第6天,p165-p210总结,总计46页。一、技术总结1.bookmarks项目(1)登录认证作者这里使用的是Django自带的auth。(2)上传头像图片处理,使用Pillow。(3)扩展user扩展user模型与自带的user使用外键进行关联,命名为profile。二、英语总结(生词:4)1.def......
  • django naive datetime问题
    naivedatetime问题,其实就是datetime数据没有携带时间就传递给了模型类现象:D:\anaconda3\envs\schedule_devops\lib\site-packages\django\db\models\fields_init_.py:1367:RuntimeWarning:DateTimeFieldNodeStopRecord.stop_timereceivedanaivedatetime(2024-11-1602:......
  • django 数据库ORM通用的公共函数
    通用查询1、公共函数:defgeneric_query(model,filter_kwargs=None,order_by=None,limit=None,aggregate=None,annotate=None):"""通用的DjangoORM查询函数。:parammodel:Django模型类:paramfilter_kwargs:过滤条件字典:paramorder_by:......
  • 基于python+django的Spark的国漫推荐系统的设计与实现
    前言基于python+django的Spark国漫推荐系统能为国漫爱好者提供精准的内容推荐。系统先收集大量国漫数据,包括国漫名称、类型、作者、制作公司、评分、播放量、剧情简介、人物设定等信息。利用Spark的分布式计算能力对这些数据进行处理和存储。在用户方面,当新用......
  • 基于python+django的Hadoop的短视频数据分析的设计与实现
    前言基于python+django的Hadoop短视频数据分析系统可充分挖掘短视频数据价值。从各大短视频平台接口等多种数据源采集数据,利用Hadoop分布式存储海量短视频的基本信息、用户信息、播放量、点赞数、评论内容等。借助python数据分析库和django框架,清洗、预处理......
  • Django SQL 查询优化方案:性能与可读性分析
    DjangoSQL查询优化方案:性能与可读性分析目录⚙️使用DjangoORM的raw()方法进行SQL查询......
  • 高效Django随机查询优化方案
    高效的Django随机查询优化方案目录......
  • 大数据项目-Django基于机器学习实现的音乐推荐系统
    《[含文档+PPT+源码等]精品Django基于机器学习实现的音乐推荐系统》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!数据库管理工具:phpstudy/Navicat或者phpstudy/sqlyog后台管理系统涉......