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

编辑:光环大数据 来源: 互联网 时间: 2017-10-18 10:41 阅读:

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开发项目的时候要注意一些效率方面的东西。

 
 Python培训,就选光环大数据Python培训机构python学习地址:http://hadoop.aura.cn/python/

大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();