django项目中使用bootstrap插件的分页功能。
官网下载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。
django项目中使用bootstrap插件的分页功能。的更多相关文章
- Django项目中使用plupload插件实现上传图片功能
首先下载plupload插件放在static静态文件下面,官方地址:https://www.plupload.com/ 项目根目录下创建media文件夹用来存放上传的图片,配置settings文件,添 ...
- 项目中使用ECharts插件实现统计功能
一.前端界面 // 界面中定义一个div,放图表 <div id="box" style="width: 600px;height:400px;padding: 1 ...
- Django项目中模板标签及模板的继承与引用【网站中快速布置广告】
Django项目中模板标签及模板的继承与引用 常见模板标签 {% static %} {% for x in range(x) %}{% endfor %} 循环的序号{% forloop %} 循环 ...
- vue-cli+webpack在生成的项目中使用bootstrap方法(二)
vue-cli+webpack在生成的项目中使用bootstrap方法(一)中,是通过手动下载bootstrap库,然后手动添加到src/assets中,显然是过程太多. 当然是可以更省力些,可以通过 ...
- 项目中整合第三方插件与SpringMVC数据格式化关于ip地址
一.Bootstrap 响应式按钮 <div calss="col-sm-2"> <button class="btn btn-default btn- ...
- django项目中遇到要实现定时任务
django项目中遇到要实现定时任务,所以选用了简单易用的django-crontab插件. 1.安装 django-crontab pip install django-crontab 2.定时要执 ...
- vue-cli项目中引入第三方插件
前言 最近有小伙伴问道如何在vue-cli项目中引入第三方插件或者库,例如如果想在项目中使用jQuery中的Ajax请求数据呢?或者我想使用Bootstrap框架呢?等等这些问题,本篇博客将带你学习如 ...
- [翻译]在Django项目中添加谷歌统计(Google Analytics)
原文:<Google Analytics tracking code into Django projects, the easy way> 对我来说,制作一个可扩展的Django应用随时 ...
- Django项目中使用Redis
Django项目中使用Redis DjangoRedis 1 redis Redis 是一个 key-value 存储系统,常用于缓存的存储.django-redis 基于 BSD 许可, 是一个使 ...
随机推荐
- Android File Transfer Mac: 如何在 macOS 和 Android 系统之间移动数据
三大 Mac OS X 系统 Android 文件传输软件 谷歌出品的 Android File Transfer 如何在 Mac 系统上使用 Android File Transfer Androi ...
- oracle 通用事务使用
private void dothing() { OracleConnection con = DBHelperOracle.init(); OracleTransaction tran = con. ...
- 在Angular中使用element
在angular中使用element 1.在一个新建的angular的项目中插入element npm i --save element-angular 2.在项目中的styles.css中插入文件, ...
- beanshell 通过java写数据到文件
import java.io.*; String filePath = "/data/account.txt"; String conent = vars.get("ac ...
- LeetCode 5216. 统计元音字母序列的数目(Java)DP
5216. 统计元音字母序列的数目 给你一个整数 n,请你帮忙统计一下我们可以按下述规则形成多少个长度为 n 的字符串: 字符串中的每个字符都应当是小写元音字母('a', 'e', 'i', 'o', ...
- C语言conio.h部分解释
#include <conio.h> int getch(void);// 从控制台得到下一个字符,以ASCII值返回,并不在屏幕显示该字符 int getche(void);// 从控制 ...
- NOI2019:Stay at Home
7.16 NOI D1 从同步赛开始更起好了 先看了一圈题目,发现T1非常可做,二次函数因为对称轴在\(x < 0\)的地方所以有跟一次函数类似的单调性,搞个单调队列维护一下似乎就可以了.大力码 ...
- redis - redis安装与启动
redis安装 下载redis安装包 wget http://download.redis.io/releases/redis-5.0.7.tar.gz 解压缩 tar -xzf redis-5.0. ...
- [個人紀錄] WindowsLiveWriter 插入代碼跳出錯誤
跳出找不到設定檔Can’t load configruaration fromC:\Users\…\AppData\Roaming\Windows Live Writer\WindowsLiveWri ...
- C# vb .net实现淡色效果滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的淡色效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...