Easily Implement Django Pagination
View code from django.core.paginator import Paginator def announcement(request): ctx = { 'global': GlobalCtx, 'announcements': models.Announcement.objects.all(), } paginator
目录3 个章节
View code
from django.core.paginator import Paginator
def announcement(request):
ctx = {
'global': GlobalCtx,
'announcements': models.Announcement.objects.all(),
}
paginator = Paginator(ctx['announcements'], Config.admin.paginator_limit) # Config.admin.paginator_limit 每一页显示数量
ctx['paginator'] = paginator.page(request.GET.get('page', '1'))
return render(request, 'announcement.html', ctx)
Web page code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous">
</head>
<body class="container">
<table class="table table-striped table-bordered table-hover table-condensed">
<thead>
<tr class="danger">
<th>时间</th>
<th>发布者</th>
<th>标题</th>
<th>内容</th>
</tr>
</thead>
<tbody>
{% if paginator %}
{% for a in paginator %}
<tr class="{% cycle 'active' 'success' 'warning' 'info' %}">
<td>{{ a.publish|date:'Y-m-d H:i:s' }}</td>
<td>{{ a.username }}</td>
<td>{{ a.title }}</td>
<td>{{ a.content }}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="4">无数据</td>
</tr>
{% endif %}
</tbody>
</table>
<!-- 分页开始 -->
<div>
<ul class="pagination">
<li><a href="/console/announcement?page=1">首页</a></li>
{% if paginator.has_previous %}
<li><a href="/console/announcement?page={{ paginator.previous_page_number }}">上一页</a></li>
{% endif %}
{% for num in paginator.paginator.page_range %}
<li><a href="/console/announcement?page={{ num }}">{{ num }}</a></li>
{% endfor %}
{% if paginator.has_next %}
<li><a href="/console/announcement?page={{ paginator.next_page_number }}">下一页</a></li>
{% endif %}
<li><a href="/console/announcement?page={{ paginator.paginator.num_pages }}">尾页</a></li>
</ul>
</div>
<!-- 分页结束 -->
</body>
</html>
Result

_EOF_
Easily Implement Django Pagination
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
Django:为模板渲染加入Markdown支持
两种方法 Django 的django-markdown-deux模块 Python模块 markdown django-markdown-deux 首先需要安装: pip install django-markdown-deux 修改setting.py 把markdown-deux添加进去 INSTALLED_APPS = [ 'markdown-deux', ] 在模板里添加tags
2022-04-02 · Django · 约 1 分钟
Django应用部署:Docker容器化实践
在此之前,我一直用uwsgi+virtualenv+nginx方式进行应用部署,操作起来比较麻烦,而且依赖于服务器上的Python版本,服务的管理方面单纯uwsgi + pid算不上特别麻烦但总没有docker compose方便,无奈原本的服务器是32位系统的用不上docker,现在又增加了一个新服务器,所以赶紧把docker安排上~ 不得不说真的太简单太方便了,全程傻瓜式操作,也基本没像之前u
2021-12-18 · Django · 约 1 分钟
Django的单元测试和集成测试
测试,在以前确实是经常被忽略的话题,特别是对于 Python Web 这种快速开发框架
2024-03-06 · Django · 约 1 分钟
配置Django-TinyMCE组件支持上传图片功能
Django自带的Admin后台,好用,TinyMCE作为富文本编辑器,也蛮好用的,这两者结合起来在做博客的时候很方便(当然博客可能更适合用Markdown来写),但是Django-TinyMCE这个组件默认没有图片上传功能的,需要我们自己实现,本文将一步步带大家实现这个图片上传功能。 读者也可以举一反三实现其他需要和Django结合的功能。 编写上传图片逻辑 在任一views.py里添加代码:
2021-12-18 · Django · 约 1 分钟
讨论
共 0 条加载评论中…