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...