
注意,我将templates定义在项目的同级目录下:
在settings.py中配置
TEMPLATES = [ { 'BACKEND': django.template.backends.django.DjangoTemplates','Dirs': [os.path.join(BASE_DIR,'templates')],APP_Dirs: True,OPTIONS: { context_processors: [ django.template.context_processors.deBUGdjango.template.context_processors.requestdjango.contrib.auth.context_processors.authdjango.contrib.messages.context_processors.messagesurls.py
from django.urls import pathfrom . vIEwsapp_name=personurlpatterns=[ path(test/test/<int:pn>',vIEws.test,name=test),]vIEws.py
from django.shortcuts renderfrom .models Bookfrom django.core.paginator Paginatordef test(request,pn=1): #获取所有的查询 book_obj=Book.objects.all() 传给paginator,每页显示两条 paginator=Paginator(book_obj,2) pn是显示第几页,默认是第一页 page=paginator.page(pn) 将page通过context传给前端 context={page:page} return render(request,test/test.HTMLclass Book(models.Model): ID = models.autoFIEld(primary_key=True) Title = models.CharFIEld(max_length=128,null=False) def __str__(self): return "book_Title:{}".format(self.Title)
tempates/test/test.HTML
<!DOCTYPE HTML><HTML lang=en"><head> <Meta charset=UTF-8"> <Meta name=vIEwport" content=wIDth=device-wIDth,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0"> <Meta http-equiv=X-UA-Compatible" content=IE=edge"> <Title>document</Title> <style> li{ float: left; List-style: none; margin-left: 5px; } </style></head><body><div> <div style=position: absolute;top: 35%;left: 40%;"> <table border=1"> <thread> <tr> <th>ID</th> <th>Title</th> </tr> </thread> <tbody> {% for item in page %} <tr> <td wIDth=120px">{{item.ID}}</td> <td wIDth=">{{item.Title}}</td> </tr> {% endfor %} </tbody> </table> </div><!--底部分页按钮显示--><div style=position: absolute;top: 50%;left: 44%" <nav aria-label=Page navigation"> <div class=pagination"> <ul " >if page.has_prevIoUs %} <li><a href="/test/{{page.prevIoUs_page_number}}" aria-label=PrevIoUs"> <span aria-hIDden=true">«</span></a></li> {% endif %} {% for num in page.paginator.page_range%} {%if pindex == page.number%} <li><a href="">{{ num }}</a></li> {%else%"/test/{{num}}">{{ num }}</a></li> {%endif%} {% endfor %} {% if page.has_next %} <li><a href="{% url 'person:test' page.next_page_number %}" aria-label=Next"> <span aria-hIDden=">»</span></a></li> {% endif %} </ul> </div> </nav></div></body></HTML>最终效果(不要在意CSS,不大美观,哈哈)
在显示下网页源代码:
<!DOCTYPE HTML><HTML lang="> <thread> <tr> <th>ID</th> <th>Title</th> </tr> </thread> <tbody> <tr> <td wIDth=">3</td> <td wIDth=">java</td> </tr> <tr> <td wIDth=">6</td> <td wIDth=">zabbix从入门到精通</td> </tr> </tbody> </table> </div><!--底部分页按钮显示--><div style=" > <li><a href=/test/1" aria-label=">«</span></a></li> <li><a href=">1</a></li> <li><a href=/test/2">2</a></li> <li><a href=/test/3">3</a></li> <li><a href=" aria-label=">»</span></a></li> </ul> </div> </nav></div></body></HTML>总结:这是实现分页最简单的了,至于美观,可以结合bootstrap来进行美化。
技术总结:最基本的是Paginator里面的一些值(当然此处我并没有去尝试其他的,有兴趣的可以去搜下,也挺简单的)。然后其中的一个就是前端pn值如何通过url传值给后端,注意标蓝的地方。
学习不易,且学且珍惜!!!
总结以上是内存溢出为你收集整理的django实战(一)--dango自带的分页(极简)全部内容,希望文章能够帮你解决django实战(一)--dango自带的分页(极简)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)