學生管理之原生分頁方法

2022-04-01 08:33:15 字數 2988 閱讀 4646

#coding:utf-8

#__author: administrator

#date: 2016/12/7

class pagerhelper:

def __init__(self,total_count,current_page,base_url,per_page=10):

self.total_count = total_count

self.current_page = current_page

self.base_url = base_url

self.per_page = per_page

'''[1,10]

[11,20]

[21.30]

.....

[981,990]

[991,999]

每頁10條記錄,divmod(總記錄數,10)計算出頁數和剩餘記錄數。

比如:999條記錄,則可分100頁:99頁每頁10條,最後一頁9條記錄。

1000條記錄,則分為100頁,每頁10條。

href=class.html?p=1 獲取對應頁的記錄

'''#獲取每頁的起始頁

@property

def db_start(self):

return (self.current_page -1) * self.per_page

#獲取每頁的末尾頁

@property

def db_end(self):

return self.current_page * self.per_page

#獲取總頁數

def total_page(self):

v, a = divmod(self.total_count, self.per_page)

if a != 0:

v += 1

return v

def pager_str(self):

#獲取總頁碼

v = self.total_page()

pager_list =

if self.current_page == 1:

else:

# 6,1:12

# 7,2:13

#如果total頁數小於等於11,則起始頁為1,結束頁為total

if v <= 11:

pager_range_start = 1

pager_range_end = v

#如果total頁數大於11

# 如果當前頁小於6,則起始頁為1,結束頁為11

# 如果當前頁大於6,則起始頁為當前頁-5,結束頁為當前頁+5+1

# 如果此時結束頁超出了總頁數,則起始頁為總頁數-10,結束頁為總頁數+1

else:

if self.current_page < 6:

pager_range_start = 1

pager_range_end = 11 + 1

else:

pager_range_start = self.current_page - 5

pager_range_end = self.current_page + 5 + 1

if pager_range_end > v:

pager_range_start = v - 10

pager_range_end = v + 1

#生成每一頁的a標籤連線

for i in range(pager_range_start, pager_range_end):

if i == self.current_page:

else:

if self.current_page == v:

else:

#將所有頁面放入到乙個字串

pager = "".join(pager_list)

return pager

@auth

def handle_classes(request):

if request.method == "get":

#models.classes.objects.create(caption='職業打醬油一班')

#for i in range(1000):

# models.classes.objects.create(caption='職業打醬油'+str(i)+'班')

# 當前頁

current_page = request.get.get('p',1)

current_page = int(current_page)

# 所有資料的個數

total_count = models.classes.objects.all().count()

from utils.page import pagerhelper

obj = pagerhelper(total_count, current_page, '/classes.html',15)

pager = obj.pager_str()

cls_list = models.classes.objects.all()[obj.db_start:obj.db_end]

current_user = request.session.get('username')

return render(request,

'classes.html',

)

id

標題操作

}}編輯| 跳轉編輯 | 刪除

mysql原生分頁語句 mysql原生分頁

select from table limit pageno 1 pagesize,pagesize 一 分頁需求 客戶端通過傳遞start 頁碼 limit 每頁顯示的條數 兩個引數去分頁查詢資料庫表中的資料,那我們知道mysql資料庫提供了分頁的函式limit m,n,但是該函式的用法和我們的需...

php原生分頁

自己寫乙個原生php分頁 link mysql connect localhost 使用者名稱 密碼 mysql select db 資料庫名稱 link mysql query set names utf8 result mysql query select from 表名 count mysql...

js jQuery 原生分頁器

引入jquery外掛程式 引入page.js檔案 在文章的最後面 css 外面盒子樣式 自己定義 page div 頁數按鈕樣式 page div button firstpage,lastpage,nextpage,prepage nextpage,prepage page div current...