首页 > 其他分享 >django实现分页的模块(导入即可用)

django实现分页的模块(导入即可用)

时间:2024-09-15 11:03:23浏览次数:9  
标签:GET int list self request django 导入 模块 page

`from django.utils.safestring import mark_safe
import copy

class PagerPlay(object):
def init(self,request,customer_list):
self.customer_list = customer_list
self.request_GET = copy.deepcopy(request.GET)
self.request_GET._mutable = True
self.page = request.GET.get("page")
if not self.page:
self.page = 1
self.start = (int(self.page) - 1) * 10
self.end = int(self.page) * 10
self.total_page, self.div = divmod(self.customer_list.count(), 10)
self.query_list = self.customer_list[self.start:self.end]
self.page_list = []
def page_html(self):
if self.div:
self.total_page += 1

    self.request_GET.setlist('page', [1])
    self.page_list.append(
        '<li class="page-item"><a class="page-link" href="?{}"  style="text-align: center;">首</a></li>'.format(
            self.request_GET.urlencode()))
    if int(self.page) > 1:
        self.request_GET.setlist('page', [int(self.page) - 1])
        self.page_list.append(
            '<li class="page-item"><a class="page-link" href="?{}"  style="text-align: center;"> <</a></li>'.format(
                self.request_GET.urlencode()))

    if self.total_page < 11:
        start_page = 1
        end_page = self.total_page
        for i in range(start_page, end_page + 1):
            if i == int(self.page):
                self.request_GET.setlist('page', [i])
                item = '<li class="page-item active"><a class="page-link" href="?{}" style="text-align: center">{}</a></li>'.format(
                    self.request_GET.urlencode(), i)
                self.page_list.append(item)
                continue
            self.request_GET.setlist('page', [i])
            item = '<li class="page-item"><a class="page-link" href="?page={}" style="text-align: center">{}</a></li>'.format(
                self.request_GET.urlencode(), i)
            self.page_list.append(item)
            self.request_GET.setlist('page', [self.total_page])
            self.page_list.append(
                '<li class="page-item"><a class="page-link" href="?{}"  style="text-align: center;">尾</a></li>'.format(
                    self.request_GET.urlencode()))
        page_ll = mark_safe(''.join(self.page_list))
        return page_ll
    if self.total_page > 11:
        if int(self.page) < 6:
            start_page = 1
            end_page = 11
        else:
            if int(self.page) + 5 > self.total_page:
                start_page = self.total_page - 10
                end_page = self.total_page
            else:
                start_page = int(self.page) - 5
                end_page = int(self.page) + 5
        for i in range(start_page, end_page + 1):
            if i == int(self.page):
                self.request_GET.setlist('page', [i])

                item = '<li class="page-item active"><a class="page-link" href="?{}" style="text-align: center">{}</a></li>'.format(
                    self.request_GET.urlencode(), i)

                self.page_list.append(item)
                continue
            self.request_GET.setlist('page', [i])
            item = '<li class="page-item"><a class="page-link" href="?{}" style="text-align: center">{}</a></li>'.format(
                self.request_GET.urlencode(), i)
            self.page_list.append(item)
        if int(self.page) < self.total_page:
            self.request_GET.setlist('page', [int(self.page) + 1])
            self.page_list.append(
                '<li class="page-item"><a class="page-link" href="?{}"  style="text-align: center;">></a></li>'.format(
                    self.request_GET.urlencode()))
        self.request_GET.setlist('page', [self.total_page])
        self.page_list.append(
            '<li class="page-item"><a class="page-link" href="?page={}"  style="text-align: center;">尾</a></li>'.format(
                self.request_GET.urlencode()))
        page_ll = mark_safe(''.join(self.page_list))
        return page_ll`

标签:GET,int,list,self,request,django,导入,模块,page
From: https://www.cnblogs.com/yuanyongsheng/p/18415063

相关文章

  • 【开题报告】基于django+vue基于Web的小型社区配送系统(论文+源码) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的蓬勃发展和消费者对即时配送服务需求的日益增长,小型社区配送系统逐渐成为连接商家与居民的重要桥梁。传统社区配送往往面临......
  • python+django+mysql 教师培训反馈系统05141-计算机毕业设计项目选题推荐(赠源码)
       目   录摘  要Abstract第1章  前  言1.1 研究背景1.2 研究现状1.3 系统开发目标第2章  系统开发环境62.1HTTP协议62.2HTML网页技术62.3B/S结构62.4django脚本语言72.5MySQL数据库72.6Apache简介8第3章  需求分析......
  • cJSON-轻量级解析模块、字符串的神——编织STM32C8T6与阿里云信息传递的纽带
            编写方向:本人就不泛泛的编写一篇什么一文学会cJSON了,没什么突出点,也就我水水字数,你们看来看去也不懂,本人是从上阿里云传信息接触的cJSON的,我就此写一篇针对性的文章,希望对大家有用,后期我在其他方面用到还会继续更新。一、简介        cJSON是一个用C......
  • 【重温童年】基于tkinter模块设计的Q宠大乐斗武器升星模拟器:重温经典,畅享休闲时光
    在快节奏的现代生活中,我们总是在寻找那些能够让我们暂时忘却烦恼,沉浸在简单快乐中的休闲方式。对于许多80后、90后而言,Q宠大乐斗无疑是一款充满回忆的经典网页游戏。它以其独特的宠物养成、战斗系统以及丰富多样的武器系统,吸引了无数玩家的心。今天,就让我们一起重温那段美好的......
  • 实战13-搜索模块滑动效果01
    import{getHomeDataApi}from'../api/home';import{BannerListDataSource,INavList,IPlanList,ITitleList}from'../api/models/HomeData';importSwiperLayoutfrom'../views/Home/SwiperLayout';import{window}from'......
  • 基于django+vue电脑DIY微信小程序演示录像22023【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着科技的飞速发展,个人电脑(PC)已成为人们日常生活与工作中不可或缺的一部分。然而,在市场上琳琅满目的电脑配件和复杂多变的配置选项中,许多......
  • 基于django+vue电脑DIY微信小程序【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着科技的飞速发展,个人电脑已成为日常生活与工作中不可或缺的工具。而电脑DIY(自己动手组装电脑)作为一种新兴的文化和趋势,不仅满足了用户......
  • 基于django+vue电力营销系统设计【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电力行业的快速发展与智能电网技术的日益成熟,传统的电力营销方式已难以满足现代社会的需求。面对用户需求的多样化、服务要求的提升以......
  • 时间模块time and date time
    importtimeimportdatetimeprint(time.time())#时间戳格式time.sleep(1)#延迟时间print(time.localtime())#北京时区元组格式时间,结构时间print(time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))#把结构时间转换成格式时间print(time.strptime("2024......
  • java pom两个模块需要互相引用怎么办
    在Maven项目中,如果有两个模块需要互相引用,这是一个循环依赖问题,通常应该尽量避免。循环依赖会导致构建失败或运行时问题。以下是处理这种情况的几种方法:1.重构代码,消除循环依赖这是一种最常见的方法,通过分析两个模块之间的依赖关系,考虑将共享的部分抽取出来,放入一个新的、独立的......