有一些
django分页的代码示例,我用了一会儿.我可能是错的,但是当查看代码时,它会浪费大量的内存.我正在寻找一个更好的解决方案,这里是代码:
# in views.py from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger ... ... def someView(): models = Model.objects.order_by('-timestamp') paginator = Paginator(models,7) pageNumber = request.GET.get('page') try: paginatedPage = paginator.page(pageNumber) except PageNotAnInteger: pageNumber = 1 except EmptyPage: pageNumber = paginator.num_pages models = paginator.page(pageNumber) return render_to_resp ( ..... models ....)
我不确定这个代码的细微之处,但从它的外观上来看,第一行代码从数据库中检索每一个模型并将其推入.然后它被传递到Paginator,根据用户从html GET开始的页面将其分组.分母不知何故使这可以接受,还是这完全记忆效率低下?如果效率低下,怎么可以改进?
另外,一个相关话题.如果有人做:
Model.objects.all()[:40]
这个代码是否意味着所有模型都被推入内存,我们拼接出40个?哪个是坏的还是意味着我们仅查询并推送40个对象到内存期?
感谢您的帮助!