首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据

本篇章继续往数据库添加数据,然后查询数据,模板中渲染出来。 在此之前,先来理解一些概念。...这个名称来源于比利的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。...由于Django近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SDTimes评选为2013SDTimes100,位列"API、库和框架"分类第6位,被认为是该领域的佼佼者。...发出数据查询,model与数据库交互,并返回数据 3、view将model返回的数据提供给template进行渲染,并将渲染好的template返回浏览器 插入数据至数据库中 执行之前,首先需要插入数据...,如果不清楚数据库模型操作的,可以参见我前面的文章Django 2.1.7 基于默认sqlite3 模型设计 以及 数据操作。

92050

Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据

本篇章继续往数据库添加数据,然后查询数据,模板中渲染出来。 在此之前,先来理解一些概念。...这个名称来源于比利的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。...由于Django近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SDTimes评选为2013SDTimes100,位列"API、库和框架"分类第6位,被认为是该领域的佼佼者。...model发出数据查询,model与数据库交互,并返回数据 3、view将model返回的数据提供给template进行渲染,并将渲染好的template返回浏览器 插入数据至数据库中 执行之前,首先需要插入数据...,如果不清楚数据库模型操作的,可以参见我前面的文章Django 2.1.7 基于默认sqlite3 模型设计 以及 数据操作。

50920
您找到你想要的搜索结果了吗?
是的
没有找到

django 模型关系

正向查询( ForeignKey 所在的模型查询关联的模型) car = Car.objects.get(pk=2) car.manufacturer #返回一条Manufacturer 对象 反向查询...( ForeignKey 指向的模型查询ForeignKey 所在的模型) 如果模型有一个ForeignKey,那么该ForeignKey 所指的模型实例可以通过一个管理器返回前一个有ForeignKey...默认情况下,这个管理器的名字为foo_set,其中foo 是源模型的小写名称。该管理器返回查询集可以用上一节提到的方式进行过滤和操作。...(Group) 建议以被关联模型名称的复数形式做为 ManyToManyField 的名字 在哪个模型中设置 ManyToManyField 并不重要,两个模型中任选一个即可——不要在两个模型中都设置...当某个对象想扩展自另一个对象,最常用的方式就是在这个对象的主键上添加一对一关系

1.4K30

django模型动态修改参数,增加 filter 字段的方式

(反向查询,我们会这么写: models.Classes.objects.first().student_set.all() 当我们ForeignKey字段中添加了参数 related_name...(反向查询,我们会这么写: models.Classes.objects.first().students.all() - related_query_name:反向查询操作,使用的连接前缀,用于替换表名...symmetrical:仅用于多对多自关联,指定内部是否创建反向操作的字段。默认为True。...through:使用ManyToManyField字段Django将自动生成一张表来管理多对多的关联关系。...其他属性详情请查看:官方文档 以上这篇django模型动态修改参数,增加 filter 字段的方式就是小编分享给大家的全部内容了,希望能给大家一个参考。

3.8K31

Django之ForeignKey和ManyToManyField多表查询

多表查询模型层的重要功能之一, Django提供了一套基于关联字段独特的解决方案....只有db_constraint=TrueDjango model才会在数据库上建立外键约束, 该值为False不建立约束. 默认db_constraint=True....ForeignKey.related_query_name以ForeignKey.related_name作为默认值 使用ForeignKey查询 前向查询 若关系模型A包含与模型B关联的关联字段, 模型...提供了一种使用双下划线__的查询语法: >>> Entry.objects.filter(blog__name='Beatles Blog') 反向查询 被索引的关系模型可以访问所有参照它的模型的实例,...文档-模型字段-关联字段 django文档 - 执行查询 - 关联的对象 django文档 - 执行查询 - 跨关联关系查询

1.7K10

基于Django OneToOneField和ForeignKey的区别详解

ForeignKey,ManyToManyField和OneToOneField的辨析 导引 模型(Models)是对网站所需信息种类的定义,其包含了网站存储数据中的重要字段和数据行为。...函数过滤和values函数 to_field 关系关联的相关对象名称 db_constraint 控制在数据库中是否应该建立这一字段的约束 swappable 用于控制这一字段对于可交换类模型的行为...ManyToManyField 同样源码中我们可以找到针对ManyToManyField的如下定义: many_to_many = True many_to_one = False one_to_many...swappable 设置是否指向一个可交换的模型 OneToOneField 源码中对OneToOneField的设置如下: many_to_many = False many_to_one =...概念上我们可以理解其为设置unique属性为True的一种类型,区别之处在于它“反向”的数值会返回一个目标值,这对于继承关系的表达十分有用,例如一下示例程序: from django.conf import

2.3K20

Django之Model操作数据库详解

Django ORM框架的功能: 建立模型类和表之间的对应关系,允许我们通过面向对象的方式来操作数据库。 根据设计的模型类生成数据库中的表格。 通过方便的配置就可以进行数据库的切换。...返回数据库中匹配的对象的第一个对象 last() 返回数据库中匹配的对象的最后一个对象 exists() 判断一个对象集合中是否包含指定对象..., 'name': 'Linxiao'}]> 8.values_list():     values_list(*fields, flat=False)         与values()类似,只是迭代返回的是元组而不是字典...Q查询 F查询专门取对象中某列值的操作,F的作用:用来批量修改数据的 #导入F from django.db.models import F #把table1表中的num列中的每一个值的基础上加10...="bbb"),book_id__gt=4 九、实例 1、Django的ORM中如何判断查询结果是否为空,判断django中的orm为空 result= Booking.objects.filter()

7K10

django 1.8 官方文档翻译:2-1-1 模型语法

在哪个模型中设置 ManyToManyField 并不重要,两个模型中任选一个即可 —— 不要两个模型都设置。 通常,ManyToManyField 实例应该位于可以编辑的表单中。...当模型实例需要强制转换并显示为普通的字符串,Python 和Django 将使用这个方法。最明显是交互式控制台或者管理站点显示一个对象的时候。 将将永远想要定义这个方法;默认的方法几乎没有意义。...如果抽象化基础类和它的子类有相同的项,那么将会出现error(并且Django返回一个exception)。...果你没有抽象基类中为某个关联字段定义 related_name 属性,那么默认的反向名称就是子类名称加上'_set',它能否正常工作取决于你是否子类中定义了同名字段。...查询集始终返回请求的模型 也就是说,没有办法让DJango查询Person对象返回MyPerson对象。Person 对象的查询集会返回相同类型的对象。

4.9K20

07.Django学习之model进阶

你可以将过滤器保持一整天,直到查询集 需要求值Django 才会真正运行这个查询。...所以使 #用iterator()的时候要当心,确保你的代码操作一个大的queryset没有重复执行查询。...二 中介模型 处理类似搭配 pizza 和 topping 这样简单的多对多关系,使用标准的ManyToManyField 就可以了。但是,有时你可能需要关联数据到两个模型之间的关系上。...对于这些情况,Django 允许你指定一个中介模型来定义多对多关系。 你可以将其他字段放在中介模型里面。源模型ManyToManyField 字段将使用through 参数指向中介模型。...select_related 返回一个QuerySet,当执行它的查询它沿着外键关系查询关联的对象的数据。它会生成一个复杂的查询并引起性能的损耗,但是以后使用外键关系将不需要数据库查询

2K30

django 1.8 官方文档翻译: 2-1-1 模型语法(初稿)

通常来说,每个模型都对应数据库中的一张表。 基础: 每个模型都是django.db.models.Model类的子类。 模型的每个属性都表示数据库中的一个字段。...字段名称不可以包含连续多个下划线,因为这与 Django 查询所用的筛选条件语法相冲突。...如果你没有抽象基类中为某个关联字段定义 related_name 属性,那么默认的反向名称就是子类名称加上 ‘_set’,它能否正常工作取决于你是否子类中定义了同名字段。...查询集只返回请求所使用的 model (Querysets still return the model that was requested) 无论你何时查询 User 对象,Django 都不会返回...针对 User 对象的查询集只返回 User 对象。代理对象的精要就在于依赖原始 User 的代码仅对它自己有效,而你自己的代码就使用你扩展的内容。

3.1K30

Django-model进阶(中介模型查询优化,extra,整体插入)

你可以将过滤器保持一整天,直到查询集 需要求值Django 才会真正运行这个查询。 ?...一个新创建的查询集中,缓存为空。首次对查询集进行求值 —— 同时发生数据库查询 ——Django 将保存查询的结果到查询集的缓存中并返回明确请求的结果(例如,如果正在迭代查询集,则返回下一个结果)。...中介模型 处理类似搭配 pizza 和 topping 这样简单的多对多关系,使用标准的ManyToManyField  就可以了。但是,有时你可能需要关联数据到两个模型之间的关系上。...对于这些情况,Django 允许你指定一个中介模型来定义多对多关系。 你可以将其他字段放在中介模型里面。源模型ManyToManyField 字段将使用through 参数指向中介模型。...select_related 返回一个QuerySet,当执行它的查询它沿着外键关系查询关联的对象的数据。它会生成一个复杂的查询并引起性能的损耗,但是以后使用外键关系将不需要数据库查询

1.6K70

Django】聚合在Django的详细解析以及运用在企业级项目里的方法

本主题指南介绍如何使用Django查询生成和返回聚合值。...例如,想计算所有售图书的平均价格。Django查询语法提供了一种描述所有藏书的方法。 传递给聚合()的参数描述了要计算的聚合值。在此示例中,将计算Book模型上价格字段的平均值。...如果要指定聚合值的名称,可以指定聚合子句提供指定的名称。...但是,有时要聚合的值属于所查询模型的关联模型聚合函数中指定聚合字段Django允许您在筛选相关字段使用相同的双下划线符号。Django将处理需要检索和聚合相关值的任何表连接。...(num_authors=Count('authors')) annotate()和filter()子句的顺序¶ 开发涉及annotate()和filter()子句的复杂查询,请特别注意应用于QuerySet

2K40

Django之QuerySet详解

可以使用下列方法对QuerySet提交查询操作: 迭代:QuerySet是可迭代的,首次迭代查询执行实际的数据库查询。...tzinfo参数定义截取之前将数据时间转换到的时区。 11. none() 调用none()将创建一个不返回任何对象的查询集,并且访问结果不会执行任何查询。...这会生成一个复杂的查询并引起性能的损耗,但是以后使用外键关系将不需要再次数据库查询。 下面的例子解释了普通查询和select_related()查询的区别。...当最初获取数据不知道是否需要这些特定字段的情况下,如果正在使用查询集的结果,可以告诉Django不要从数据库中检索它们。...可以通过ManyToManyField属性和反向关联使用get_or_create()。在这种情况下,应该限制查询关联的上下文内部。 否则,可能导致完整性问题。

2.3K20

Django 模型继承 BaseModel

你只需要决定父类模型是否需要拥有它们的权利(拥有它们的数据表),或者父类仅作为承载仅子类中可见的公共信息的载体。 Django 有三种可用的集成风格。...代理模型继承“Meta”属性 和普通模型一样。 QuerySet 仍会返回请求的模型¶ 当你用 Person 对象查询Django 永远不会返回 MyPerson 对象。...Person 对象的查询结果集总是返回对应类型。代理对象存在的全部意义是帮你复用原 Person 提供的代码和自定义的功能代码(并未依赖其它代码)。...随着上面的例子一路走下来,你可以查询 Person 模型这样修改默认管理器: from django.db import models class NewManager(models.Manager...通用性规则: 当你克隆一个已存在模型或数据表,并且不想要所以的原数据表列,配置 Meta.managed=False。这个选项模型化未受 Django 控制的数据库视图和表格很有用。

2K10

Django ORM模型:想说爱你不容易

有一些限制条件是Django提供的,并没有数据库层面的对应物,比如blank。 (当blank参数为真,对应字段可以为留为空白。) 基本的模型设计上,Django ORM没有留什么坑。...需要注意的是,Django ORM中,只能通过ForeignKey来定义多对一关系,不能显示地定义一对多关系。但你可以使用模型对象的*_set语法来反向调用多对一关系。...真希望有一种显式说明关系的办法,降低读代码的认知负担。 查询 Django ORM可以通过一些方法来实现。其中的很多方法返回的是Django自定义的QuerySet类的迭代器。...Python看到迭代器时会懒惰求值,所以这些方法返回并不会真正进行数据库操作。这样,多个方法串联操作,就避免了重复操作数据库。...我觉得这种情况下,可以直接上原始的SQL查询语句了,没必要再自己折腾自己。 F表达式和Q表达式 F表达式指代了一列,对于update操作引用列的值有用。

76820

Django ORM模型:想说爱你不容易

有一些限制条件是Django提供的,并没有数据库层面的对应物,比如blank。 (当blank参数为真,对应字段可以为留为空白。) 基本的模型设计上,Django ORM没有留什么坑。...需要注意的是,Django ORM中,只能通过ForeignKey来定义多对一关系,不能显示地定义一对多关系。但你可以使用模型对象的*_set语法来反向调用多对一关系。...真希望有一种显式说明关系的办法,降低读代码的认知负担。 查询 Django ORM可以通过一些方法来实现。其中的很多方法返回的是Django自定义的QuerySet类的迭代器。...Python看到迭代器时会懒惰求值,所以这些方法返回并不会真正进行数据库操作。这样,多个方法串联操作,就避免了重复操作数据库。...我觉得这种情况下,可以直接上原始的SQL查询语句了,没必要再自己折腾自己。 F表达式和Q表达式 F表达式指代了一列,对于update操作引用列的值有用。

62320

Django ORM模型:想说爱你不容易

有一些限制条件是Django提供的,并没有数据库层面的对应物,比如blank。 (当blank参数为真,对应字段可以为留为空白。) 基本的模型设计上,Django ORM没有留什么坑。...需要注意的是,Django ORM中,只能通过ForeignKey来定义多对一关系,不能显示地定义一对多关系。但你可以使用模型对象的*_set语法来反向调用多对一关系。...真希望有一种显式说明关系的办法,降低读代码的认知负担。 查询 Django ORM可以通过一些方法来实现。其中的很多方法返回的是Django自定义的QuerySet类的迭代器。...Python看到迭代器时会懒惰求值,所以这些方法返回并不会真正进行数据库操作。这样,多个方法串联操作,就避免了重复操作数据库。...我觉得这种情况下,可以直接上原始的SQL查询语句了,没必要再自己折腾自己。 F表达式和Q表达式 F表达式指代了一列,对于update操作引用列的值有用。

1.2K80

django 1.8 官方文档翻译: 2-2-1 执行查询

执行查询 一旦你建立好数据模型之后,django会自动生成一套数据库抽象的API,可以让你执行增删改查的操作。这篇文档阐述了如何使用这些API。关于所有模型检索选项的详细内容,请见数据模型参考。...,向ManyToManyField添加多条记录,可以调用add()方法传入多个参数,像这样: >>> john = Author.objects.create(name="John") >>> paul...一般来说,对 QuerySet 切片会返回新的 QuerySet – 这个过程中不会对运行查询。不过也有例外,如果你切片时使用了 “step” 参数,查询集就会被求值,就在数据库中运行查询。... Django 删除对象,会模仿 SQL 约束 ON DELETE CASCADE 的行为,换句话说,删除一个对象也会删除与它相关联的外键对象。...(headline=F('blog__name')) 对象关联 当你定义 model 定义关系 (例如, ForeignKey, OneToOneField, 或 ManyToManyField),

4.3K20

Django中ORM介绍和字段及其参数

(反向查询,我们会这么写: models.Classes.objects.first().student_set.all() 当我们ForeignKey字段中添加了参数 related_name ...symmetrical:仅用于多对多自关联,指定内部是否创建反向操作的字段。默认为True。...through: 使用ManyToManyField字段Django将自动生成一张表来管理多对多的关联关系。...是否添加 class Meta 到你的 model 完全是可选的. app_label app_label这个选项只一种情况下使用,就是你的模型类不在默认的应用程序包下的models.py文件中,这时候你需要指定你这个模型类是那个应用程序的...ordering 这个字段是告诉Django模型对象返回的记录结果集是按照哪个字段排序的。

2.8K80
领券