django分頁分析

2021-09-24 09:29:25 字數 2388 閱讀 6885

1. 將movie.sql 匯入 當前資料庫中。

...]

4.將資料庫表逆向生成模型類

5.顯示影片頁面

get movies/

配置路由

建立檢視函式

6.分頁

mysql分頁語句: select * from t_movie limit 0,10;

a[start:end]

設定:num:當前頁碼數 size:每頁顯示記錄數 start end

1 2 0 2

2 2 2 4

3 2 4 6

n s (n-1)*s n*s

2.django分頁

1.訪問路徑:

2.配置路由

3.建立檢視函式

def pagemovieview(request):

"""利用django分頁實現影片展示"""

#0.獲取當前頁碼數

num = request.get.get('num',1)

num = int(num)

#1.獲取所有的影片資訊

tmovies = tmovie.objects.all().order_by('id')

#2.建立django分頁物件

page_obj = paginator(object_list=tmovies,per_page=12)

# paginator(tmovies,12)

#3.獲取當前頁的資料

try:

per_page_list = page_obj.page(num)

except emptypage:

per_page_list = page_obj.page(1)

return render(request,'movie.html',)

4.修改movie.html頁面資訊

5.增加每頁頁碼顯示的功能

思路:每頁顯示10個頁碼

當前頁碼數顯示在中間位置(前5後4)

獲取每頁顯示的起始頁碼數 start

獲取每頁顯示的結束頁碼數 end

start end num

1 10 1

1 10 5

1 10 6

2 11 7

3 12 8

n-(10/2) start+9 n

page_num_list = [start,end] = range(start,end+1)

for page in page_num_list:

核心**:

#4.獲取每頁頁碼數的列表

#start:每頁起始頁碼數

#end:每頁結束頁碼數

start = num - math.ceil(10/2)

if start < 1:

start = 1

end = start + 9

if end > page_obj.num_pages:

end = page_obj.num_pages

if end < 10:

start = 1

else:

start = end - 9

#獲取每頁顯示頁碼數列表

page_num_list = range(start,end+1)

django分頁涉及方法:

#建立分頁器物件

page_obj = paginator(object_list=tmovies,per_page=12)

#paginator的方法

per_page_obj = page_obj.page(num) ---> 獲取當前頁的資料

page_obj.num_pages --->獲取總頁數

#page 物件的方法

per_page_obj.has_previous()

per_page_obj.has_next()

per_page_obj.previous_page_number()

per_page_obj.next_page_number()

#獲取當前頁碼數

per_page_obj.number()

#異常物件

emptypage

django 分頁功能

django 分頁功能 django自帶了paginator,功能有一定侷限,使用django pure pagination功能更為強大 github傳送門 1 使用pip源安裝 pip install django pure pagination pure pagination 3 在setti...

Django 內建分頁

from django.core.paginator import paginator,page userlist models.user.objects.all paginator paginator userlist,10 per page 每頁顯示條目數量 count 資料總個數 num pa...

Django分頁元件

django內建分頁 內建分頁包含2個重要物件 paginator和page物件,分別封裝了分頁的一些物件屬性,實質上是2個類屬性的例項化 首先從django.core.paginator中引入模組 from django.core.paginator import paginator,emptyp...