官网下载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>&nbsp;&nbsp;&nbsp;&nbsp;阅读:{{ v.article_clicknum }}&nbsp;&nbsp;</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插件的分页功能。的更多相关文章

  1. Django项目中使用plupload插件实现上传图片功能

    首先下载plupload插件放在static静态文件下面,官方地址:https://www.plupload.com/ 项目根目录下创建media文件夹用来存放上传的图片,配置settings文件,添 ...

  2. 项目中使用ECharts插件实现统计功能

    一.前端界面 // 界面中定义一个div,放图表 <div id="box" style="width: 600px;height:400px;padding: 1 ...

  3. Django项目中模板标签及模板的继承与引用【网站中快速布置广告】

    Django项目中模板标签及模板的继承与引用 常见模板标签 {% static %} {% for x in range(x) %}{% endfor %} 循环的序号{% forloop %} 循环 ...

  4. vue-cli+webpack在生成的项目中使用bootstrap方法(二)

    vue-cli+webpack在生成的项目中使用bootstrap方法(一)中,是通过手动下载bootstrap库,然后手动添加到src/assets中,显然是过程太多. 当然是可以更省力些,可以通过 ...

  5. 项目中整合第三方插件与SpringMVC数据格式化关于ip地址

    一.Bootstrap 响应式按钮 <div calss="col-sm-2"> <button class="btn btn-default btn- ...

  6. django项目中遇到要实现定时任务

    django项目中遇到要实现定时任务,所以选用了简单易用的django-crontab插件. 1.安装 django-crontab pip install django-crontab 2.定时要执 ...

  7. vue-cli项目中引入第三方插件

    前言 最近有小伙伴问道如何在vue-cli项目中引入第三方插件或者库,例如如果想在项目中使用jQuery中的Ajax请求数据呢?或者我想使用Bootstrap框架呢?等等这些问题,本篇博客将带你学习如 ...

  8. [翻译]在Django项目中添加谷歌统计(Google Analytics)

    原文:<Google Analytics tracking code into Django projects, the easy way> 对我来说,制作一个可扩展的Django应用随时 ...

  9. Django项目中使用Redis

    Django项目中使用Redis DjangoRedis 1 redis Redis 是一个 key-value 存储系统,常用于缓存的存储.django-redis 基于 BSD 许可, 是一个使 ...

随机推荐

  1. [转]10 Best GTK Themes for Ubuntu 18.04

    原文地址:https://omgfoss.com/10-best-gtk-themes-ubuntu-18-04/

  2. java.lang.ClassNotFoundException: org.apache.http.impl.client.HttpClientBuilder

    添加依赖即可:compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.6' ,注意是apache的包

  3. Prometheus监控实战day2——监控主机和容器

    Prometheus使用exporter工具来暴露主机和应用程序上的指标,目前有很多exporter可供利用.对于收集各种主机指标数据(包括CPU.内存和磁盘),我们使用Node Exporter即可 ...

  4. vue做页面按钮权限--分析

    import * as types from '../mutation-types' const state = { btnCode: getBtnCode(), } const mutations ...

  5. VisualVM使用

    sualVM是JDK自带的一个用于Java程序性能分析的工具 在JDK安装目录的bin文件夹下名称为 jvisualvm.exe 在左侧选择应用 (1)概述 应用程序和运行时环境的基本信息 基本参数 ...

  6. Winograd Convolution 推导 - 从1D到2D

    Winograd Convolution 推导 - 从1D到2D 姚伟峰 http://www.cnblogs.com/Matrix_Yao/ Winograd Convolution 推导 - 从1 ...

  7. remote origin already exists解决办法

    如图翻译过来就是:致命:远程来源已经存在 此时,我们可以先 git remote -v 查看远程库信息: 可以看到,本地库已经关联了origin的远程库,并且,该远程库指向GitHub. 解决办法如下 ...

  8. Java byte和hex十六进制字符串转换

    在Java中字符串由字符char组成, 一个char由两个byte组成, 而一个byte由八个bit组成, 一个十六进制字符(0-F)实际上由4个字节byte即可表达, 因此, 从字节数组到十六进制字 ...

  9. 超级简单POI导出Excel实战

    在一般的生产管理系统都会将数据通过页面导出到Excel,这里以Java为例通过第三方开源poi进行对Excel的操作,具体操作如下 1.引入jar包依赖 这里我以maven的方式引入jar包,具体依赖 ...

  10. Label&Button

    Button中的bg参数设置按钮背景颜色,fg参数设置字体颜色 pack中的fill参数告诉Packer让QUIT按钮占据剩余的水平空间,而expand参数则引导它填充整个水平可视空间,将按钮拉伸到左 ...