2024-09-28 20:47:36 发布
网友
在django模型查询中,我想知道它的顺序执行。考虑一个查询Blog.objects.get(name='palm')。 在这种情况下,定义Blog与中的类blog相同吗模特儿。派伊? 我在django的源文件中找不到任何与此相关的对象。如果Blog是一个类,那么objects的类型是什么?你知道吗
Blog.objects.get(name='palm')
Blog
blog
objects
我想要一个开发方面的概念。有谁能解释一下django是如何做到这些的?你知道吗
每个非抽象的Django模型类都附带了一个属性^{}(当然,除非您显式删除它)。你知道吗
object是^{}。它是一个对象,它有许多方法来构造查询,然后将这些查询发送到数据库以获取/存储数据。你知道吗
object
因此,首先访问Blog类的objects管理器,然后调用.get(name='palm')。这意味着Django将把它转换成一个查询。这取决于您使用的数据库系统。例如,如果它是MySQL,它将看起来像:
.get(name='palm')
SELECT name, some, other columns FROM app_blog WHERE name = 'palm'
数据库将以零行、一行或多行响应,如果找不到行或多行,Django将引发DoesNotExists或MultipleObjectsReturned错误。否则,它会将数据加载到Blog对象中(通过将列反序列化为Python对象)。你知道吗
DoesNotExists
MultipleObjectsReturned
每个非抽象的Django模型类都附带了一个属性^{} (当然,除非您显式删除它)。你知道吗
object
是^{因此,首先访问
Blog
类的objects
管理器,然后调用.get(name='palm')
。这意味着Django将把它转换成一个查询。这取决于您使用的数据库系统。例如,如果它是MySQL,它将看起来像:数据库将以零行、一行或多行响应,如果找不到行或多行,Django将引发
DoesNotExists
或MultipleObjectsReturned
错误。否则,它会将数据加载到Blog
对象中(通过将列反序列化为Python对象)。你知道吗相关问题 更多 >
编程相关推荐