python web框架中使用原生分页

本文实例为大家分享了python web框架实现原生分页的具体代码,供大家参考,具体内容如下

原生分页器 示例

#!/usr/bin/env python
# -*- coding:utf-8 -*-

class Pagination:

 def __init__(self, p, all_count, pre=10, max_show=11):
  '''
    :param p: 当前页码
    :param all_count: 数据总条数
    :param pre: 每页数据量
    :param max_show: 最多页码数
    '''
  try:
   self.p = int(p) # 传进来的页码
   if self.p <= 0:
    self.p = 1
  except Exception as e:
   self.p = 1

  # 总量
  # all_count = all_count
  # pre = per # 每页数据条数
  total_num, more = divmod(all_count, pre)
  if more:
   total_num += 1 # total_num总数据页数

  # 显示页码数
  max_show = max_show
  if total_num <= max_show: # 总数据量很小
   page_start = 1
   page_end = total_num
  else:
   if self.p - max_show // 2 <= 0: # 防止左边出现0页
    page_start = 1
    page_end = max_show

   elif self.p + max_show // 2 >= total_num + 1: # 防止右边出现超出
    page_end = total_num
    page_start = page_end - max_show
   else:
    page_start = self.p - max_show // 2
    page_end = self.p + max_show // 2

  # 数据的起始结束
  self.start = (self.p - 1) * pre
  self.end = self.p * pre

  # 页码
  self.page_start = page_start
  self.page_end = page_end
  self.total_num = total_num

 @property
 def page_html(self):
  li_list = []
  for i in range(self.page_start, self.page_end + 1):
   if i == self.p:
    li_list.append('<li class="active"><a href="?p={}" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{}</a></li>'.format(i, i))
   else:
    li_list.append('<li><a href="?p={}" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{}</a></li>'.format(i, i))

  # 添加页首 页尾

  li_list.insert(0,
      '<li><a href="?p={}" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" aria-label="Previous"><span aria-hidden="true">«</span></a></li>'.format(
       self.p - 1))
  li_list.append(
   '<li><a href="?p={}" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" aria-label="Next"><span aria-hidden="true">»</span> </a></li>'.format(self.p + 1))

  if self.p == 1:
   li_list[0] = '<li class="disabled"><span aria-hidden="true">«</span></li>'
  elif self.p == self.total_num:
   li_list[-1] = '<li class="disabled"><span aria-hidden="true">»</span></li>'

  pagehtml = ''.join(li_list)
  return pagehtml

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python flask实现分页的示例代码

    结合mysql数据库查询,实现分页效果 @user.route("/user_list",methods=['POST','GET']) def user_list(): p = g.args.get("p", '') #页数 show_shouye_status = 0 #显示首页状态 if p =='': p=1 else: p=int(p) if p > 1: show_shouye_status = 1 mdb = db_session() limit

  • Python Django 简单分页的实现代码解析

    这篇文章主要介绍了Python Django 简单分页的实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 models.py: from django.db import models class Book(models.Model): title = models.CharField(max_length=32) def __str__(self): return self.title class Meta: db_table =

  • python实现分页效果

    本文实例为大家分享了python实现分页效果展示的具体代码,供大家参考,具体内容如下 难点:清空Layout #!/usr/bin/python #-*-coding:utf-8-*- from PyQt4.QtCore import * from PyQt4.QtGui import * class PageWidget(QWidget): def __init__(self,parent=None): super(PageWidget,self).__init__(parent) self.

  • Python的Flask框架中实现分页功能的教程

    Blog Posts的提交 让我们从简单的开始.首页上必须有一张用户提交新的post的表单. 首先我们定义一个单域表单对象(fileapp/forms.py): class PostForm(Form): post = TextField('post', validators = [Required()]) 下面,我们把这个表单添加到template中(fileapp/templates/index.html): <!-- extend base layout --> {% extends &

  • python使用BeautifulSoup分页网页中超链接的方法

    本文实例讲述了python使用BeautifulSoup分页网页中超链接的方法.分享给大家供大家参考.具体如下: python通过BeautifulSoup分页网页中的超级链接,这段python代码输出www.jb51.net主页上所有包含了jb51的url链接 from BeautifulSoup import BeautifulSoup import urllib2 import re url = urllib2.urlopen("http://www.jb51.net") con

  • Python利用flask sqlalchemy实现分页效果

    Flask-sqlalchemy是关于flask一个针对数据库管理的.文中我们采用一个关于员工显示例子. 首先,我们创建SQLALCHEMY对像db. from flask import Flask, render_template,request from flask_sqlalchemy import SQLAlchemy app = Flask(__name__,static_url_path='') app.debug = True app.secret_key = "faefasdfa

  • python 实现分页显示从es中获取的数据方法

    注意:使用该方法,获取的数据总数目不能超过1万,否则出错 #在python3上运行 from elasticsearch import Elasticsearch from urllib3.connectionpool import xrange def get_page_data(result): for hit in result['hits']['hits']: print(hit) if __name__=='__main__': es_host = "0.0.0.0" por

  • Python Django 封装分页成通用的模块详解

    这篇文章主要介绍了Python Django 封装分页成通用的模块详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 新建 utils 文件夹,并创建 page.py page.py: class ShowPage(object): def __init__(self, page_num, total_count, url_prefix, per_page=10, max_page=11): ''' :param page_num: 当前页码数

  • 详解Python odoo中嵌入html简单的分页功能

    在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染 html页面分页内容,这里写了判断逻辑 <!-- 分页 --> <ul id="ty_paging"> <li class="home" id="home"><a href="/car/budget/report/1" rel="external nofoll

  • Python+Selenium自动化实现分页(pagination)处理

    场景 对分页来说,我们最感兴趣的是下面几个信息 总共有多少页 当前是第几页 是否可以上一页和下一页 代码 下面代码演示如何获取分页总数及当前页数.跳转到指定页数 #coding:utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://segmentfault.com/news") # 获得所有分页的数量 # -2是因为要去掉上一个和下一个 total

  • python flask实现分页效果

    在我们学习的过程中会遇到这么样的问题,就是在我们学习的过程中会发现需要分页处理,这里呢,给大家介绍书上说的分页. @app.route('/',methods=['GET']) @app.route('/<int:page>') def home(page=1): pagination=Post.query.order_by(Post.publish_date.desc()).paginate(page, per_page=10,error_out=False) posts = paginat

  • Python Django实现layui风格+django分页功能的例子

    第一步:首先定义一个视图函数,用于提供数据,实现每页显示数据个数,返回每页请求数据 from django.shortcuts import render from django.core.paginator import Paginator # Django内置分页功能模块 def index(request): # 提供json数据 resp = {"id":10000,"username":"user-0","sex":

随机推荐