首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Django创建者将模型和queryset分开?

为什么Django创建者将模型和queryset分开?
EN

Stack Overflow用户
提问于 2019-01-21 10:11:31
回答 1查看 32关注 0票数 0

我的问题和标题是一样的;

为什么Django创建者将模型和queryset分开?

在编写Django代码时,我总是觉得两者所扮演的角色非常相似,因为它们都是用于数据库管理的。另外,模型本身没有实际数据,但将它们传递给queryset,这让人感到有点尴尬,尽管它是python和数据库之间的接口。

为什么Django创建者或合作者将相同的角色划分为这两个角色,有什么原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-21 10:33:41

在面向对象的意义上,它们是完全不同的两件事:

  • Model实例是一个对象,它可以表示您希望它表示的任何东西,比如汽车、地址或个人,它的一些属性存储在数据库中(它可以包括甚至不来自数据库的属性)。
  • QuerySet是一个延迟的数据库查询,可以返回一个或多个数据库行。在计算QuerySet时,您实际上实例化模型并使用数据填充它们。

请注意,在MVC术语中,Django模型正是MVC的模型。您还可以拥有自己的模型,这些模型甚至不是django.db.models.Model的子类,例如,如果您从API中获取数据,或者一个只存在于当前会话中且不永久存储在数据库中的模型。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54287648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档