• Django对数据库的封装1——QuerySet
  • 发布时间:2018-02-28 来源:网络 上传者:用户

    关键字: manager 数据库 记录 影响

    发表文章

  • 摘要:   Django对数据库的操作分用到三个类:Manager、QuerySet、Model。Manager的主要功能定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manager为父类,定义自己的manager,增加表级方法;QuerySet是Manager的方法返回的,是一个可遍历结构,包含一个或多个元素,每个元素都是一个Model实例,它里面的方法也是表级方法,前面说了,Django给我们提供了增加表级方法的途径
  • Django对数据库的操作分用到三个类:Manager、QuerySet、Model。Manager的主要功能定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manager为父类,定义自己的manager,增加表级方法;QuerySet是Manager的方法返回的,是一个可遍历结构,包含一个或多个元素,每个元素都是一个Model 实例,它里面的方法也是表级方法,前面说了,Django给我们提供了增加表级方法的途径,那就是自定义manager类,而不是自定义QuerySet类,一般的我们没有自定义QuerySet类的必要;Model是一条记录的类,它的功能很强大,里面包含外键实体等,它的方法都是记录级方法(都是实例方法,无类方法),不要在里面定义类方法,比如计算记录的总数,查看所有记录,这些应该放在自定义的manager类中。

    1.QuerySet 1.1 简介

    每个Model都有一个默认的manager类,名为objects,QuerySet有两种来源:通过manager的方法得到、通过QuerySet的方法得到。QuerySet的最初来源就是通过manager的方法。mananger的方法和QuerySet的方法大部分同名,同意思,如filter(),update()等,但也有些不同,如manager有create()、get_or_create(),而QuerySet有delete()等。一个QuerySet包含一个或多个model instance。QuerySet类似于Python中的list,list的一些方法QuerySet也有,比如切片,遍历。

比如models.Author.objects

models.Author就是一个model,他有一个manager类,models.Author.objects ,这个类调用all()方法得到queryset对象

a=models.Author.objects.all()#a就是一个queryset对象

有些方法,通过manager和通过queryset调用,产生的效果是相同的,比如说filter方法,manager和queryset对象都有这个方法,而且

models.Author.objects.filter(id__gt=2)

models.Author.objects.all().filter(id__gt=2)

调用产生的结果是相同的

转载于:https://www.cnblogs.com/saolv/p/10285563.html

django QuerySet相关推荐

  1. Django QuerySet 就学那么一点点,一点点就够了

    橡皮擦,一个逗趣的互联网高级网虫.新的系列,让我们一起进入 Django 世界. 已经完成的文章 滚雪球学 Python 第三轮,Python Web 之 Django 的世界 小手哆嗦一下,就能用 ...

  2. Django QuerySet API 文档阅读(3):QuerySet定义(一)

    原文地址:​​​​​​QuerySet API reference | Django documentation | Django QuerySet有两个属性,ordered和db: ordered: ...

  3. Django学习笔记之Django QuerySet的方法

    一般情况下,我们在写Django项目需要操作QuerySet时一些常用的方法已经满足我们日常大多数需求,比如get.filter.exclude.delete神马的感觉就已经无所不能了,但随着项目但业 ...

  4. Django QuerySet API文档

    在查询时发生了什么(When QuerySets are evaluated) QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作.只要你查询的时候才真正的操作数据 ...

  5. 合并多个python list以及合并多个 django QuerySet 的方法

    尊重原文作者,该文转载于: http://www.yihaomen.com/article/python/533.htm 在用python或者django写一些小工具应用的时候,有可能会遇到合并多个l ...

  6. Django QuerySet优化

    参考: https://docs.djangoproject.com/zh-hans/3.2/topics/db/optimization https://www.jianshu.com/p/aded ...

  7. Django Queryset用法

    文章目录 filter/get get/update_or_create update django查询之Q对象.F对象.聚合查询.分组查询 QuerySet 并不是执行Objects.all(),或 ...

  8. Django QuerySet浅析

    QuerySet 源码浅析 模型.objects: from django.http import HttpResponse from .models import Book def index(re ...

  9. Django QuerySet速查手册

    Django为我们提供了一套与数据库交互的机制,让我们能够更便捷的对数据库进行增删改查.Django 对数据库的操作依赖于它的 ORM 系统,Django ORM 主要包括Manager.QueryS ...

最新文章

  1. Math.round(11.5)等于多少?Math.round(-11.5)等于多少?
  2. go语言学习(4)接口,duck typing
  3. Java算法--串的简单处理
  4. List与Map的遍历过程中删除元素
  5. LAMP介绍,Apache安装细节过程
  6. SAP Spartacus如何创建自定义route页面
  7. jQuery缓存数据——仿Map
  8. 解决yum [Errno 256] No more mirrors to try
  9. python输入数据的维度_python – Keras LSTM输入维度设置
  10. 完整、详细的MySQL规范
  11. iVX低代码平台系列制作APP简单的个人界面
  12. 基于SpringBoot进销存ERP管理系统,源代码分享
  13. 数字图像处理技术对军事与公安的帮助
  14. ADS-B放大器KU1090
  15. 使用手册 煤矿风险管控系统_煤矿风险分级管控手册.doc
  16. [渝粤教育] 中原科技学院 设计学和美好生活 参考 资料
  17. Java项目:文具学习用品商城系统(java+SSM+JSP+jQuery+Mysql)
  18. Photo Shop教程(adobe的官方入门视频)
  19. 线性回归中常见的一些统计学术语(RSE RSS TSS ESS MSE RMSE R2 Pearson's r)
  20. glusterfs搭建

热门文章

  1. 1438.最小公倍数
  2. bzoj3322 最大生成树+LCA
  3. vmware vcenter orchestrator configuration提示“用户名密码错误或登录失败超过次数被锁定”...
  4. LeetCode:Generate Parentheses
  5. paip.批处理清理java项目冗余jar的方法
  6. 一个数学公式求解的优化
  7. MS CRM如果在Tab页中有Iframe选项,原来速度不慢,突然速度变慢
  8. 1.vue生命周期详解(2020.12.05)
  9. Ant-design-vue定制主题色
  10. 【博客项目】—登录验证功能实现( 五)