前台html代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<ul>
{% for article in articles %}
<li>{{ article.title }}</li>
{% endfor %}
</ul>
<nav aria-label="Page navigation">
<ul class="pagination">
{% if page_obj.has_previous %}
<li><a href="{% url 'viewlist' %}?page={{ page_obj.previous_page_number }}">上一页</a></li>
{% else %}
<li class="disabled"><a>上一页</a></li>
{% endif %} {# 第一页#}
{% if current_page > 3 %}
<li><a href="{% url 'viewlist' %}?page=1">1</a></li>
{% endif %} {# 左边页码 #}
{% for left_page in left_pages %}
{% if left_page > 0 %}
<li><a href="{% url 'viewlist' %}?page={{ left_page }}">{{ left_page }}</a></li>
{% endif %}
{% endfor %}
<li><a href="javascript:void(0);">...</a></li>
{# 当前页码 #}
<li class="active"><a href="{% url 'viewlist' %}?page={{ current_page }}">{{ current_page }}</a></li>
{# 右边页码 #}
{% for right_page in right_pages %}
{% if right_page <= paginator.num_pages %}
<li><a href="{% url 'viewlist' %}?page={{ right_page }}">{{ right_page }}</a></li>
{% endif %}
{% endfor %}
<li><a href="javascript:void(0);">...</a></li>
{# 最后一页#}
{% if current_page < 98 %}
<li><a href="{% url 'viewlist' %}?page={{ paginator.num_pages }}">{{ paginator.num_pages }}</a></li>
{% endif %} {% if page_obj.has_next %}
<li><a href="{% url 'viewlist' %}?page={{ page_obj.next_page_number }}">下一页</a></li>
{% else %}
<li class="disabled"><a href="javascript:void(0);">下一页</a></li>
{% endif %} </ul>
</nav> </body>
</html>

后台view视图

from django.http import HttpResponse
from django.shortcuts import render
from django.views.generic import ListView
from django.views.generic.base import TemplateView
from .models import Article, User, Book
from django.utils.timezone import now, localtime,make_aware
from datetime import datetime
from django.db.models import Count, Avg, F
from django.db.models.manager import Manager
from django.views import View class Index(View):
def get(self, request):
# info_list = []
# for i in range(1000):
# info_list.append(Article(title='title-%s' % i,content='content-%s' % i))
# Article.objects.bulk_create(info_list)
return HttpResponse('ok') class ArticleListView(ListView):
model = Article
template_name = 'article_list_view.html'
paginate_by = 10
context_object_name = 'articles'
ordering = 'id'
page_kwarg = 'page' def get_context_data(self, *, object_list=None, **kwargs):
context = super(ArticleListView, self).get_context_data(**kwargs)
page_obj = context.get('page_obj')
paginator = context.get('paginator')
pagination_data = self.get_pagination_data(paginator, page_obj)
context.update(pagination_data) return context def get_pagination_data(self,paginator,page_obj,around_count=2):
current_page = page_obj.number
left_page = range(current_page-around_count, current_page)
right_page = range(current_page+1,current_page+around_count+1)
return {
'current_page':current_page,
'left_pages': left_page,
'right_pages': right_page
}

URLS内容

from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
# path('', views.index, name='index')
# path('index/<book_id>/', views.Index.as_view(), name='index')
path('', views.Index.as_view(), name='index'),
path('viewlist/', views.ArticleListView.as_view(), name='viewlist'),
# path('viewlist/<int:book_id>', views.ArticleListView.as_view(), name='viewlist'),
]

django创建分页的更多相关文章

  1. 第二十一章 Django的分页与cookie

    第二十一章 Django的分页与cookie 第一课 模板 1.模板的继承 在Template目录下新建模板master.html <!DOCTYPE html> <html lan ...

  2. django之分页,纯python代码

    Django中分页 py文件代码 """ 自定义分页组件 可以返回分页的数据和分页的HTML代码 """ from django.http ...

  3. 用django创建一个项目

    首先你得安装好python和django,然后配置好环境变量,安装python就不说了,从配置环境变量开始 1.配置环境变量 在我的电脑处点击右键,或者打开 控制面板\系统和安全\系统 -> 左 ...

  4. 利用django创建一个投票网站(一)

    这是教程的原始链接:http://django-intro-zh.readthedocs.io/zh_CN/latest/part1/ 创建你的第一个 Django 项目, 第一部分 来跟着实际项目学 ...

  5. django创建项目

    django创建项目 安装django pip install django==1.9 Note: C:\Python34\Scripts\pip.exe 创建项目 django-admin star ...

  6. 用django创建一个简单的sns

    用django创建一个简单的sns 1.首先创建一个工程newsns django-admin.py startproject newsns 在工程目录下新建一个文件夹templates,在该文件夹下 ...

  7. Python Django的分页,Form验证,中间件

    本节内容 Django的分页 Form 中间件 1 Django 分页 1.1 Django自带的分页 1.首先来看下我的测试数据环境 ############ models.py ######### ...

  8. Django----列表分页(使用Django的分页组件)

    目的:是为了实现列表分页 1.定制URL http://127.0.0.1:8000/blog/get_article?page=3之前定制URL是在url后增加了/id,这次使用参数的方式 def ...

  9. django创建工程,用命令

    django创建工程的命令 >>python C:\Python33\Lib\site-packages\django\bin\django-admin.py startproject p ...

随机推荐

  1. C++/CLI学习入门

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxIAAAFlCAYAAAB/fN6bAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw

  2. LoibreOJ 2042. 「CQOI2016」不同的最小割 最小割树 Gomory-Hu tree

    2042. 「CQOI2016」不同的最小割 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  3. synchronized Lock

    synchronized和Lock都是Java语言提供的两种实现对共享资源进行同步的机制.其中synchronized使用Object对象本身的wait().notify().notifyAll()方 ...

  4. Creating Your Own PHP Helper Functions In Laravel

    By Hamza Ali LAST UPDATED AUG 26, 2018  12,669 104 Laravel provides us with many built-in helper fun ...

  5. Python编程笔记(第一篇)Python基础语法

    一.python介绍 1.编程语言排行榜 TIOBE榜 TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员.课程和第三方厂商的数量. 2.pytho ...

  6. 接口没添加@responseBody注解

    今天在重写springaop小demo时,发现调用接口时,可以在控制台上正常返回结果,但是页面报错,debug半天,可以看到是调用了modelview的时候出错,找不到视图了.. debug的时候控制 ...

  7. [ES]elasticsearch章1 ES各角色的分工

    es集群里的master node.data node和client node到底是怎么个意思,分别有何特点? master节点 主要功能是维护元数据,管理集群各个节点的状态,数据的导入和查询都不会走 ...

  8. javase高级技术 - 泛型

    在写案例之前,先简单回顾下泛型的知识 我们知道,java属于强变量语言,使用变量之前要定义,并且定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值. 所谓“泛型”,就是“宽泛的数据类 ...

  9. canvas 实现赛车游戏

    一:创建画布 <canvas width="200" height="500" id="canvas" style="bor ...

  10. kbmmw 的HTTPSmartService入门

    前面介绍过kbmmw 中的smartservice. 这个既可以用于kbmmw 的客户端,也可以使用http 访问. 在新版的kbmmw里面,作者加强了http 的支持,我们可以只使用HTTPSmar ...