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

查询集 QuerySet和管理器Mana

当调用如下过滤器方法Django会返回查询集(而不是简单的列表): all():返回所有数据。 filter():返回满足条件的数据。 exclude():返回满足条件之外的数据。...对查询集可以再次调用过滤器进行过滤, BookInfo.objects.filter(bread__gt=30).order_by('bpub_date') 从SQL的角度讲,查询集与select语句等价...1>惰性执行 创建查询集不会访问数据库,直到调用数据,才会访问数据库,调用数据的情况包括迭代、序列化、与if合用 例如,当执行如下语句,并未进行数据库查询,只是创建了一个查询集qs qs = BookInfo.objects.all...等同于sql的limit和offset子句。...qs = BookInfo.objects.all()[0:2] 管理器manager 自定义manager 注意:一旦为模型类指明自定义的过滤器后,Django不再生成默认管理对象objects。

1K40

Django】 开发:数据库操作和后台管理

django,可以使用模型管理器的raw方法来执行select语句进行数据查询 语法: MyModel.objects.raw(sql语句,[拼接参数]) 用法 MyModel.objects.raw...包,使用前需要先导入 : from django.db import connection 用创建 cursor 类的构造函数创建 cursor 对象,再使用 cursor 对象,为保证在出现异常能释放...cur.execute('执行SQL语句', '拼接参数') 示例 # 用SQL语句将id 为 10的 书的出版社改为 "XXX出版社" from django.db import connection...类型的记录,不便于阅读和判断 在用户自定义模型可以重写 方法解决显示问题,: 在 自定义模型重写 str(self) 方法返回显示文字内容: class Book(models.Model...Django模拟SQL约束ON DELETE CASCADE的行为,并删除包含ForeignKey的对象。

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

Django模型

限制查询集 可以对查询集进行取下标或切片操作,等同于sql的limit和offset子句。   注意:不支持负数索引。 对查询集进行切片后返回一个新的查询集,不会立即执行查询。...通过对象执行关联查询 在定义模型,可以指定三种关联关系,最常用的是一对多关系,本例的"图书-英雄"就为一对多关系。...hero.hbook 通过模型执行关联查询- 由多模型类条件查询模型类数据: 语法如下: 关联模型类名小写__属性名__条件运算符=值   如果没有"__运算符"部分,表示等于,结果和sql的inner...当没有为模型类定义管理器Django会为每一个模型类生成一个名为objects的管理器,自定义管理器后,Django不再生成默认管理器objects。...自定义管理器类主要用于两种情况: 1.修改原始查询集,重写all()方法 2.向管理器类添加额外的方法,向数据库插入数据。 1.修改原始查询集,重写all()方法。

6.1K21

Django Admin后台管理:高效开发与实践

查看、编辑和删除记录:点击列表的记录,可以查看详细信息并进行编辑或删除操作。 通过这一章的学习,你将对Django Admin有基本的了解,并能够开始使用它来管理你的数据模型。...替换默认用户模型:在settings.py设置AUTH_USER_MODEL指向自定义用户模型自定义字段:可以在自定义用户模型添加额外的字段,手机号码、地址等。...链式调用:QuerySet支持链式调用,可以在一个语句中执行多个查询操作。 惰性执行:QuerySet是惰性执行的,这意味着它们在真正需要数据才会执行查询。...代码审查:检查代码的瓶颈,如数据库查询优化、缓存使用、I/O操作等。 数据库优化:索引优化、查询优化、减少数据冗余等。 代码重构:减少不必要的计算和复杂的逻辑,提高代码执行效率。 2....防止常见安全漏洞 SQL注入:使用参数化查询或预编译语句,避免直接拼接用户输入。

7610

Django模型model

: 根据对象的类型生成数据库表结构 将对象、列表的操作,转换为sql语句 将sql查询到的结果转换为对象、列表 Django模型包含存储数据的字段和约束,对应着数据库唯一的表 ORM.png 2....Django模型类开发流程 在models.py定义模型类,要求继承自models.Model 把应用加入settings.py文件的installed_app 生成迁移文件 执行迁移生成表 使用模型类进行...定义模型类 在模型定义属性,会生成数据库表的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单使用的默认html控件 在管理站点最低限度的验证 django...Django模型进行数据库的查询操作的接口,Django应用的每个模型都拥有至少一个管理器 自定义管理器类主要用于两种情况 向管理器类添加额外的方法创建管理器对象保存数据到数据库 class TestInfoManager...模型类的查询 查询集表示从数据库获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句

11510

Django模型入门教程-操作MySQL

Django 为我们提供了一种更简单的操作数据库的方式。 在 Django 模型(Model)是用来定义数据库结构的类。每个模型类通常对应数据库的一个表,类的属性对应表的列。...迁移用于同步数据库模式和 Django 模型的定义。之后对数据库做完的所有操作,最后都要执行“生成迁移文件”和“迁移数据库”这两操作。 执行数据库迁移的步骤 1....在没有定义自己的模型之前,也能执行数据库迁移,这是因为 Django自带了一些默认的应用程序(认证系统、会话管理、站点管理等),这些应用程序依赖于一些数据库表。...这些表的迁移文件已经包含在 Django框架,当执行迁移时,Django会为这些默认应用程序创建必要的数据库表。 创建模型 在创建模型之前我们需要知道这个模型属于哪一个应用下的。...这里传入的第一个参数是要关联的外键的模型;第二个 on_delete=models.CASCADE 表示关联删除,当用户被删除,对应的文章也会一起被删除

5910

web开发框架之Django基础

定义路由,通常以斜线/结尾,其好处是用户访问不以斜线/结尾的相同路径Django会把用户重定向到以斜线/结尾的路径上,而不会返回404不存在。...Cookie基于域名安全,不同域名的Cookie是不能互相访问的,访问itcast.cn向浏览器写了Cookie信息,使用同一浏览器访问baidu.com,           无法访问到itcast.cn...request.session.flush() 删除session的指定键及值,在存储删除某个键及对应的值。...自定义管理器 我们可以自定义管理器,并应用到我们的模型类上。...注意:一旦为模型类指明自定义的过滤器后,Django不再生成默认管理对象objects。 自定义管理器类主要用于两种情况: 1.

6.1K10

Django 2.1.7 模型管理器 models.Manager 以及 元选项

上一篇Django 2.1.7 模型的关联 讲述了关于Django模型一对多、多对多、自关联等模型关系。...area_obj = models.Manager() # 自定义模型管理对象 class Meta: db_table = 'AREA' # 设置表名为 AREA 使用自定义模型管理类对象来进行查询如下...将某些固定的查询写到模型管理类,避免重复编写。 自定义管理器类主要用于两种情况: 1.修改原始查询集,重写all()方法 2.向管理器类添加额外的方法,向数据库插入数据。...return super().all().filter(is_delete=False) # 设置只返回未删除的数据 b)在模型类MiddlewareInfo定义管理器 class...2.在管理器类定义创建对象的方法 对模型类对应的数据表进行操作,推荐将这些操作数据表的方法封装起来,放到模型管理器类

94440

Django 2.1.7 模型管理器 models.Manager 以及 元选项

上一篇Django 2.1.7 模型的关联讲述了关于Django模型一对多、多对多、自关联等模型关系。...area_obj = models.Manager() # 自定义模型管理对象 class Meta: db_table = 'AREA' # 设置表名为 AREA 使用自定义模型管理类对象来进行查询如下...将某些固定的查询写到模型管理类,避免重复编写。 自定义管理器类主要用于两种情况: 1.修改原始查询集,重写all()方法 2.向管理器类添加额外的方法,向数据库插入数据。...return super().all().filter(is_delete=False) # 设置只返回未删除的数据 b)在模型类MiddlewareInfo定义管理器 class...2.在管理器类定义创建对象的方法 对模型类对应的数据表进行操作,推荐将这些操作数据表的方法封装起来,放到模型管理器类

54220

Django的Manager和QuerySet

models本身没有什么需要多说的,Django 使用了一套直观的系统:一个模型类代表一张数据表,一个模型类的实例代表数据库表的一行记录。 模型类的save方法可以插入,更新,删除数据。...在Django模型的Manager提供了接口,它赋予了 Django 模型操作数据库的能力。默认情况下,Django 为每个模型类添加了一个名为 objects 的 Manager。...people = models.Manager() # 自定义名为people的管理器 使用这个实例模型, Person.objects 会产生一个 AttributeError 异常,而 Person.people.all...在Django的文档,明确的告诉了开发者,什么时候QuerySet被执行。因为这影响到SQL执行效率。...字段查找 由于字段查询非常多,也非常常用,本文不进行说明。请直接参考Django字段查询 参考资料: 执行查询 QuerySet API参考 管理器

1.1K30

初探Django框架

(默认情况下Django 会自动对 views.py 传到HTML文件的标签跳转标签, script标签语法进行转义,令其语义失效)。..., 它可以帮助用户进行数据库的连接访问, 同时更重要的是可以让用户不是通过写sql语句查询数据, 而是通过类和对象的函数方法完成对数据库的操作。...2、SQL 语句通过 pymysql 传送到数据库服务端。 3、在数据库执行 SQL 语句并将结果返回。...Django真正做的任务是生成数据库操作的语句, 然后交给pymysql这些外模块, 让它们去跟数据库进行真正的连接和执行查询语句, 然后返回得到的数据交回到Django, Django再通过内部的方法对结果进行处理分配到具体对象的一些属性当中...().delete() return HttpResponse("删除成功") 所以实际上删除操作就是通过查询操作获得一些元组后使用delete()函数就是删除数据。

2K20

Django的设计哲学

Python 内置函数来实现: help(),dir(),type(),id(),hasattr()等。...这就是为什么在模型同时定义了模型所代表的数据和有关该模型的信息(其可读名称,默认排序等选项)的原因;了解给定模型所需的所有信息都应存储在模型。...三、数据库层面: 1、SQL效率提升 应该尽可能少地执行 SQL 语句,并且在内部优化语句。这就是开发人员需要 save() 显式调用的原因,而不是框架无声地将事情隐藏在后台。...3、可以执行原始 SQL 数据库 API 应该意识到这是一个捷径,但并不是所有问题的终结。框架应使编写自定义 SQL(整个语句)或仅将自定义WHERE子句变得更容易实现。...Django 希望模板作者可以轻松地直接编辑HTML。 6、明显地对待空白 模板系统不应使用空格执行魔术操作。如果模板包含空白,则系统应在处理文本将其视为空白–仅显示它。

2.1K10

django 1.8 官方文档翻译: 2-3-1 模型实例参考

模型实例参考 该文档详细描述模型 的API。它建立在模型执行查询 的资料之上, 所以在阅读这篇文档之前,你可能会想要先阅读并理解那两篇文档。...我们将用执行查询中所展现的 博客应用模型 来贯穿这篇参考文献。...在Django 1.5 和更早的版本,在设置主键的值Django 会作一个 SELECT。如果SELECT 找到一行,那么Django 执行UPDATE,否则执行INSERT。...它只在数据库删除这个对象;其Python 实例仍将存在并持有各个字段的数据。 更多细节,包括如何批量删除对象,请参见删除对象。 如果你想自定义删除的行为,你可以覆盖delete() 方法。...这两个方法都将使用模型默认的管理器来执行查询。如果你需要使用自定义的管理器或者你需要自定义的筛选,这个两个方法还接受可选的参数,它们应该用字段查询 中提到的格式。

1.9K10

DjangoORM介绍和字段及其参数

按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码夹杂很多SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的。...本示例的CREATE TABLE SQL使用PostgreSQL语法进行格式化,但值得注意的是,Django会根据配置文件中指定的数据库后端类型来生成相应的SQL语句。...on_delete: 当删除关联表的数据,当前表与其关联的行的行为。...在数据库通过第三张表来建立关联关系。 字段参数 to:设置要关联的表; related_name:反向操作,使用的字段名,用于代替原反向查询的'表名_set'(同ForeignKey字段)。...默认值为True,这个选项为TrueDjango可以对数据库表进行 migrate或migrations、删除等操作。

2.8K80

重点内容回顾-DRF

django.db.models包含了可选的常量,常用的有三种: a.CASCADE级联,删除主表数据的时候,连同删除外键表的数据。这个就有点狠了,按需求慎用。...c.SET_NULL设置为 NULL,代表的是主表删除数据的时候,将外键关联的表数据设置为NULL。仅仅在该字段null=True,允许为null可用。...2. related_name related_name是在定义模型,外键的一个选项。它的功能下面慢慢给大家分析一下。...-h172.16.179.139 meiduo_mall < areas.sql; 要想上面的命令将来可以被多次执行,可以将上面的命令写入一个 .sh文件,在文件的首行必须指定一行命令: #!...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词

2.4K20

Django数据库的相关操作

1)save 通过创建模型类对象,执行对象的save()方法保存到数据库。...查询集,也称查询结果集、QuerySet,表示从数据库获取的对象集合。 当调用如下过滤器方法Django会返回查询集(而不是简单的列表): all():返回所有数据。...2 两大特性 1)惰性执行 创建查询集不会访问数据库,直到调用数据,才会访问数据库,调用数据的情况包括迭代、序列化、与if合用 例如,当执行如下语句,并未进行数据库查询,只是创建了一个查询集qs qs...等同于sql的limit和offset子句。...对查询集进行切片后返回一个新的查询集,不会立即执行查询。 示例:获取第1、2,运行查看。 qs = BookInfo.objects.all()[0:2] ?

2.2K50

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

执行查询 一旦你建立好数据模型之后,django会自动生成一套数据库抽象的API,可以让你执行增删改查的操作。这篇文档阐述了如何使用这些API。关于所有模型检索选项的详细内容,请见数据模型参考。...你可以一直添加过滤器,在这个过程Django 不会执行任何数据库查询,除非 QuerySet 被执行....在 Django 删除对象,会模仿 SQL 约束 ON DELETE CASCADE 的行为,换句话说,删除一个对象也会删除与它相关联的外键对象。...建议的方式是在你的 model 自定义方法或是自定义 model 的 manager 方法来运行查询。虽然 Django 不要求数据操作必须在 model 层执行。...详情请查看 执行原生SQL查询(Performing raw SQL queries). 最后,要注意的是,Django的数据操作层仅仅是访问数据库的一个接口。

4.3K20
领券