提高django model效率的几个小方法

2022-01-23 0 1,118 百度已收录

django的model高效率并不是很高,特别是在做很多的数据库操作的情况下,假如你仅用django来开企业门户网站或是外包项目得话,那可以小绕过下,但你恰巧是高效率狂换句话说是对系统的高效率规定非常高得话,那就需要留意下边的好多个方式。
1. count()方法:
大家想要count方式来获得纪录的总数可以选用下边的方式:
num = info.objects.filter('...').count()
大家看来下django model控制模块里边count方式怎么写的?
def count(self):
"""
Performs a SELECT COUNT() and returns the number of records as an
integer.
If the QuerySet is already fully cached this simply returns the length
of the cached results set to avoid multiple SELECT COUNT(*) calls.
"""
if self._result_cache is not None and not self._iter:
return len(self._result_cache)
return self.query.get_count(using=self.db)

从以上的来看,djang model的count()要实行SELECT COUNT()句子,实际上是查看了下数据库查询,那样假如纪录比较多的情形下,
数据库查询的高效率或是非常高的.
例如大家可以用len()方式去求长短得话,应用的迭代,实际效果更低。
info = info.objects.filter('...')
num = len(info)
2常用切成片
例如我们要查看数据信息得话,假如你的信息量较为大的情形下,你没有限制要查看的范畴,系统对的花销会十分的大,例如你需要分页查询的表明
新闻报道数据信息,那么你就需要依照一页要表明是多少数据信息,就载入是多少数据信息,而不是一次起把数据全都给读出,随后再依据限制的标准来表明的数据信息。
例如你需要表明前10条的新闻报道得话依照下边的办法来做:
news = News.objects.all()[1:10]
而不是:
news = News.objects.all()
news = news[1:10]
由于
news = News.objects.all()
news = news[1:10]
你是把数据库查询里的数据信息全都给读出,那样高效率并不是很高。
上边说的这几个是提升django model高效率的好多个小方式,期待大伙儿平常在使用django开发设计新项目的那时候要留意一些高效率层面的物品。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)
如需 WordPress 优化加速、二次开发、网站维护、企业网站建设托管等服务,可联系我购买付费服务:点此联系我 | 近期站内热门福利推荐:

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 1798582342@qq.com 进行处理!

文章版权及转载声明

作者:有趣本文地址:https://www.zyhao.net/295676.html最后更新时间为 2022年01月23日 星期日 17:17:46
文章转载或复制请以超链接形式并注明来源出处 有趣源码
声明:某些文章或资源具有时效性,若有 错误 或 所需下载资源 已失效,请联系客服QQ:11210980

有趣源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章