Django-website 程序案例系列-8 分页
Posted 划得戳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django-website 程序案例系列-8 分页相关的知识,希望对你有一定的参考价值。
分页例子程序:
分页函数:
LIST = [] #全局列表 for i in range(100): #1:100的列表 LIST.append(i) def user_list(request): current_page = request.GET.get(‘p‘, 1) # GET接收的都是字符串 current_page = int(current_page) #字符串转换成数字
per_page_count = 10 #每页显示多少条数据 start = (current_page - 1) * per_page_count #页数显示数据开始 end = current_page * per_page_count #页数显示数据接收 data = LIST[start:end] #生成显示列表的索引 all_count = len(LIST) #判断列表总长度 count, y = divmod(all_count, per_page_count) #取模函数,取10的模,count为取模多少次,y是剩余多少 if y: #如果y不为0 说明还有剩余的数 count += 1 page_list = [] #建立一个空列表 for i in range(1, count+1): #显示的页数是取模的数 if i == current_page: #如果判断页数为当前显示的页数 temp = ‘<a class="page active" href="/user_list/?p=%s">%s</a>‘ % (i, i)
#给列表中传这个字符串,class中加入active的css样式 else: temp = ‘<a class="page" href="/user_list/?p=%s">%s</a>‘ % (i, i) #不是当前显示就传这个字符串 page_list.append(temp) #将字符串压入列表 page_str = mark_safe("".join(page_list)) #转换成字符串,并打上安全标记传都前端 return render(request, ‘user_list.html‘, {‘li‘: data, ‘page_str‘: page_str})
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .pagination .page{ #页数标签演示 display: inline-block; padding: 5px; background-color: cornflowerblue; margin: 10px; } .pagination .page.active{ #当前标签的样式 background-color: #00aa00; color: white; } </style> </head> <body> <ul> {% for item in li %} {% include ‘li.html‘ %} #引入tag模板标签 {% endfor %} </ul> <div class="pagination"> {{ page_str }} #接收到html字符标签 </div> </body> </html>
以上是关于Django-website 程序案例系列-8 分页的主要内容,如果未能解决你的问题,请参考以下文章
Django-website 程序案例系列-6 html模板文件详解
Django-website 程序案例系列-16 modle.form(表单验证)
Django-website 程序案例系列-4 ORM数据库操作