本文实例讲述了Django框架实现的简单分页功能。分享给大家供大家参考,具体如下:
前面一篇《Django开发的简易留言板》写了个简单的留言板,如果数据量太多的话在一页显示就不那么友好了,本文就是做一个分页显示。
代码在上一篇的基础上修改。
导入分页模块并修改views
#只需修改index函数即可
from django.core.paginator import Paginator
def index(request):
messages = models.Message.objects.all() #获取全部数据
limit = 10
paginator = Paginator(messages, limit) #按每页10条分页
page = request.GET.get('page','1') #默认跳转到第一页
result = paginator.page(page)
return render(request, 'guestbook/index.html', {'messages' : result})
修改html
留言板
| 留言时间 | 留言者 | 标题 | 内容 |
|---|---|---|---|
| {{ message.publish|date:'Y-m-d H:i:s' }} | {{ message.username }} | {{ message.title }} | {{ message.content }} |
| 无数据 | |||
- 首页 {% if messages.has_previous %}
- 上一页 {% endif %} {% for num in messages.paginator.page_range %}
- {{ num }} {% endfor %} {% if messages.has_next %}
- 下一页 {% endif %}
- 尾页
其实主要使用了Django自带的Paginator模块,关于这个模块大家可以自己去官方文档查看,功能还是挺强大的,如果配合ListView的话,三行代码就可以实现分页功能。
希望本文所述对大家基于Django框架的Python程序设计有所帮助。



