django优化--ORM优缺点】的更多相关文章

谈Django绕不开ORM ORM : ORM概念,ORM特点,ORM 的优点,ORM 的缺点 orm : 对象关系映射 (Object Relational Mapping) ,用于实现面向对象编程语言里不同类型系统的数据之间的转换 [1] .从效果上说,它其实是创建了一个可在编程语言里使用的–“虚拟对象数据库”.ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据. 传达性:数据库结构被任何人都能理解的语言文档化. 精确性:基于数据模型创建正确标准化的结构概念(百度百科)对象-关系映…
ORM提供了两个方法用来优化查询效率 1. select_related 有两张表:表结构如下: class Scheme(models.Model): """ 套餐类 """ name = models.CharField(max_length=200, verbose_name="套餐名") coordinate = models.CharField(max_length=50, verbose_name="坐标…
1. exists( ) 什么时候用 count( ) 和 len( )什么时候合适, 用values( )或values_list( )只取需要的列的数据 iterator()对数据对象生成迭代器,用一条取一条 2.涉及关联查询的时候: select_related( ): 直接通过SQL语句把关联的表通过join一起取出来. prefetch_related( ): 把关联的表分别单独取出来,然后用Python进行join. 3. Use QuerySet.defer() and only(…
django的orm操作优化 models.py from django.db import models class Author(models.Model): name = models.CharField(max_length=16) age = models.IntegerField() class Book(models.Model): authors = models.ManyToManyField('Author') pubs = models.ForeignKey("Publis…
千呼万唤始出来~~~当当当,终于系统讲了django的ORM操作啦!!!这里记录的是django操作数据库表一对多.多对多的表创建及操作.对于操作,我们只记录连表相关的内容,介绍增加数据和查找数据,因为能查到就可以用常规方法进行修改,怎么加进来就怎么删掉,都是大同小异,就不再赘述了~~~ 一对多 class UserType(models.Model): caption = models.CharField(max_length=32) class UserInfo(models.Model):…
上一篇写了一个静态的登录验证. 实景情况网页的登录验证都是动态验证的,过程其实是从后端拿到储存的账户与密码来和前端的输入信息进行匹配校验的. 一.把项目拆分,来一个单独登录的包,放在Django项目下 python manage.py startapp app01 此时重新打开下项目 多出来一个app01的文件夹 二.此时刚创建的app01Django并不知道,需要手动修改配置文件来告诉Django 三.登录过程从主项目切换到app01包中的过程 四.调用数据库的方法 优化上一篇的内容.此时后端…
一.ORM概述 用于实现面向对象编程语言里不同类型系统的数据之间的转换,换言之,就是用面向对象的方式去操作数据库的创建表以及增删改查等操作. 到目前为止,当我们的程序涉及到数据库相关操作时,一般操作流程如下: 创建数据库,设计表结构和字段: 使用 MySQLdb 来连接数据库,并编写数据访问层代码,使用原生SQL语句进行访问数据: 业务逻辑层去调用数据访问层执行数据库操作,获取结果: ORM是什么?Object Relational Mapping(关系对象映射) 1.类名------>数据库中…
目录 必知必会的13条查询方法 单表查询之神奇的双下划线 一对多 ForeignKey 多对多 ManyToManyField 在Python脚本中调用Django环境 Django终端打印SQL语句 关于Mate类 聚合查询 aggregage() 分组查询 annotate() F查询 Q查询 事务 其它鲜为人知的操作 @ *** 必知必会的13条查询方法 ==1. all()== 查询所有结果 . ==2. get(kwargs)== 返回与所给筛选条件相匹配的对象,返回结果有且只有一个.…
Django的ORM补充 参考文档:https://www.cnblogs.com/wupeiqi/articles/6216618.html 1.查询性能补充 1.1 select_related 查询做主动连表 # 6.性能的优化 # q=models.UserInfo.objects.all() # for row in q: # print(row.username,row.ut.title)#每次都会因为跨表多发起一次SQL查询 q=models.UserInfo.objects.al…
Django's ORM Django is a free and open source web application framework whose ORM is built tightly into the system. After its initial release, Django becomes more and more popular due to its straightforward design and easy-to-use web-ready features.…