django项目中使用bootstrap插件的分页功能。
程序员文章站
2022-06-17 10:13:28
官网下载bootstrap插件放到项目中的static文件中 路由 前端页面引入 前端获取数据 前端分页写法 后台写法 页面效果 done。 ......
官网下载bootstrap插件放到项目中的static文件中
路由
path('blog-fullwidth/', login.fullwidth,name='fullwidth'),
前端页面引入
<link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">
前端获取数据
{% for v in article_obj %} <div class="blog-post"> <img class="writer pull-left" src="{{ v.member.member_photo }}" alt="用户头像"/> <h3><span style="color: #000;">作 者 </span><b>*</b><a href="/blog/personage/{{ v.member_id }}"><span>{{ v.member.member_name }}</span></a> </h3> <strong>{{ v.article_addtime }}</strong> <a href="/blog/single-post/{{ v.article_id }}"><h2>{{ v.article_title }}</h2></a> <div class="post-img"{% if not v.image.all.first.image_src %} style="display: none"{% endif %}> {# <a href="{{ v.image.all.last.image_src }}">点击查看图片详情</a>#} <a href="{{ v.image.all.last.image_src }}"><img class="img-responsive" src="{{ v.image.all.last.image_src }}" alt="#"/></a> </div> {# {{ v.image.all.first.image_src }}#} <p>{{ v.article_description }}</p> <ul class="list-inline read-more"> <li><a href="/blog/single-post/{{ v.article_id }}" role="button">查看全文</a></li> <span> 阅读:{{ v.article_clicknum }} </span><a href="javascript:;" data-id="{{ v.article_id }}" data-num="{{ v.article_praise_num }}" class="likes">赞:{{ v.article_praise_num }} </a> {# <li class="pull-right">{{ v.article_comment }}</li>#} </ul> </div> {% endfor %}
前端分页写法
<nav aria-label="page navigation"> <ul class="pagination"> {% if article_obj.has_previous %} <li class="previous"><a href="/blog/blog-fullwidth/?page={{ article_obj.previous_page_number }}">上一页</a> </li> {% else %} <li class="previous disabled"><a href="#">上一页</a></li> {% endif %} {% for num in pagerange %} <li {% if num == currentpage %}class=" active"{% endif %}><a href="?page={{ num }}">{{ num }}</a></li> {% endfor %} {% if article_obj.has_next %} <li class="next"><a href="/blog/blog-fullwidth/?page={{ article_obj.next_page_number }}">下一页</a></li> {% else %} <li class="next disabled"><a href="#">下一页</a></li> {% endif %} </ul> </nav>
后台写法
# 文章列表页 def fullwidth(request): member_id = request.session.get('member_id') member_name = request.session.get('member_name') super_obj = article.objects.filter(member_id=7).last() # 获取所有文章 article_obj = article.objects.filter(article_auditor=0).order_by('-article_addtime') currentpage = int(request.get.get('page', 1)) # 获取当前在第几页 # book_list = book.objects.all() paginator = paginator(article_obj, 5) # 告诉分页器我5条分页 # 如果总页数大于十一页,设置分页 if paginator.num_pages > 11: # 如果当前页数小于5页 if currentpage - 5 < 1: # 页面上显示的页码 pagerange = range(1, 11) # 如果当前页数+5大于总页数显示的页码 elif currentpage + 5 > paginator.num_pages: pagerange = range(paginator.num_pages - 9, paginator.num_pages + 1) else: # 在中间显示的十个页码 pagerange = range(currentpage - 5, currentpage + 5) else: pagerange = paginator.page_range # 捕获路由异常 try: article_obj = paginator.page(currentpage) # 如果页码输入不是整数则返回第一页的数据 except pagenotaninteger: article_obj = paginator.page(1) # 如果页码输入是空值则返回第一页数据 except emptypage: article_obj = paginator.page(1) return render(request, 'blog/blog-fullwidth.html', locals())
页面效果
done。
上一篇: 消息队列MQ简介
下一篇: JavaScript 定时器
推荐阅读
-
angular项目中bootstrap-datetimepicker时间插件的使用示例
-
Django项目中使用plupload插件实现上传图片功能
-
bootstrap table插件的分页与checkbox使用详解
-
MybatisPlus中的分页插件的使用
-
bootstrap paginator分页插件的两种使用方式实例详解
-
在vscode中安装使用pylint-django插件解决pylint的一些不必要的错误提示
-
django项目中使用bootstrap插件的分页功能。
-
angular项目中bootstrap-datetimepicker时间插件的使用示例
-
Django项目中使用plupload插件实现上传图片功能
-
bootstrap table插件的分页与checkbox使用详解