您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – django中的高效分页和数据库查询

5b51 2022/1/14 8:23:30 python 字数 1890 阅读 572 来源 www.jb51.cc/python

有一些 django分页的代码示例,我用了一会儿.我可能是错的,但是当查看代码时,它会浪费大量的内存.我正在寻找一个更好的解决方案,这里是代码: # in views.py from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger ... ... def someView(): model

概述

# 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个对象到内存期?

感谢您的帮助!

总结

以上是编程之家为你收集整理的python – django中的高效分页和数据库查询全部内容,希望文章能够帮你解决python – django中的高效分页和数据库查询所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶