Python day71 分頁功能

2022-09-03 16:54:17 字數 2422 閱讀 5744

分頁功能**:

1

from django.shortcuts import

render23

#create your views here.45

models67

89defbooks(request):10#

從url取引數

11 page_num = request.get.get("

page")

12print

(page_num,type(page_num))13#

每一頁顯示多少條資料

14 per_page = 1015#

總資料是多少

16 total_count =models.book.objects.all().count()17#

總共需要多少頁碼來展示

18 total_page, m =divmod(total_count, per_page)

19if

m:20 total_page += 1

21try

:22 page_num =int(page_num)23#

如果輸入的頁碼數超過了最大的頁碼數,預設返回最後一頁的資料

24if page_num >total_page:

25 page_num =total_page

26except

exception as e:27#

當輸入的頁碼不是正經數字的時候,預設返回第一頁的資料

28 page_num = 1

293031#

定義兩個變數儲存資料從哪兒取到哪兒

32 data_start = (page_num-1)*10

33 data_end = page_num*10

3435

3637

#頁面總共展示多少頁碼

38 max_page = 11

39if total_page 40 max_page =total_page

4142

43 half_max_page = max_page // 244#

頁面上展示的頁碼從哪兒開始

45 page_start = page_num -half_max_page46#

頁面上展示的頁碼到哪兒結束

47 page_end = page_num +half_max_page48#

如果當前頁減一半,比1還小

49if page_start <= 1:

50 page_start = 1

51 page_end =max_page

5253

#如果當前頁加一半比總頁碼數還大

54if page_end >=total_page:

55 page_end =total_page

56 page_start = total_page - max_page +1

5758 all_book =models.book.objects.all()[data_start:data_end]

5960

#自己拼接分頁的html**

61 html_str_list =62#

加上第一頁眉頁'

)64#65

#66if page_num <= 1:«'

)68else:69

#«'.format(page_num-1))

7172

for i in range(page_start,page_end +1):73#

如果是當前頁就加乙個active樣式類74#

if i == page_num:75#

tmp = '

'.format(i)76#

else:

77if i ==page_num:

78 tmp = '

'.format(i)

79else

:80 tmp = '

'.format(i)

8182

8384#85

#86if page_num >=total_page:»'

)88else:»

'.format(page_num+1))90#

加上最後一頁末頁'

.format(total_page))

9293 page_html = ""

.join(html_str_list)

9495

9697

return render(request,'

books.html

',)

11)分頁功能

思路 定義四個分頁變數 pagenow 表示第幾頁,該變數是由使用者來決定的,因此是變化的 pagesize 每一頁顯示幾條記錄。由程式制定,也可以由使用者定製 pagecount 表示總共有多少頁。該變數是計算出來 思考,怎樣確定 rowcount 共有多少條記錄。該變數是查詢資料庫得到的 一 如...

修改 ThinkPHP5 分頁功能

1 目標效果 每頁 3 條資料 page admin render return this fetch data admin page page 4 修改框架原始碼 依次找到thinkphp library tink paginator driver bootstrap.php。新增首頁按鈕方法 首...

10分頁查詢

一 格式 limit 跳過的條數,請求的條數 每頁的條數 二 舉例 limit 頁數 1 條數,條數 請求一頁的10條資料 limit 0,10 請求第三頁的5條資料 limit 10,5 請求第五頁的8條資料 limit 32,8 請求第十五頁的10條資料 limit 140,10 1.查詢某錶中...