Ben*_*enz 8 python mysql django
我的API中有这部分代码,最近已成为一个瓶颈:
total = results.count()
if request.GET.has_key('offset'):
offset = int(request.GET.get('offset').strip())
results = results.order_by('name')[100*offset:100*(offset+1)]
people = list(results)
Run Code Online (Sandbox Code Playgroud)
请注意,这results
是所有人的查询集,并且offset
是用于分页的参数.
在这里我可以看到,当我打印connection.queries
,我的数据库中获取由打两.count()
和list(results)
.之所以.count()
必须处于最顶端是因为我需要所有人的长度(不是100).有没有办法解决这个问题?
也许是这样的?:
allpeople = list(results.order_by('name'))
total = len(allpeople)
if request.GET.has_key('offset'):
offset = int(request.GET.get('offset').strip())
results = allpeople[100*offset:100*(offset+1)]
people = results
Run Code Online (Sandbox Code Playgroud)
请记住,如果不触发, withpeople = results
将会失败。if request.GET....:
归档时间: |
|
查看次数: |
759 次 |
最近记录: |