記一次Django中的ListView學習筆記

2021-09-28 14:58:14 字數 1307 閱讀 4910

views.py

from django.views.generic import listview

from

.models import movie

class

movielist

(listview)

: model = movie # model

template_name =

"movie.html"

# 載入的模板

context_object_name =

"movies"

# 從資料庫中取出的資料物件

paginate_by =

10# 每頁顯示列表的個數

ordering =

"id"

# 取出的資料按照哪個字段排序

只需要實現乙個繼承自listview的類即可,什麼都不用管,就可以實現列表頁的功能

urls.py

urlpatterns =

[ path(

"", views.movielist.as_view(

), name=

"movie_index"),

]

理清上面幾個問題再來看列表檢視就一點都不難了。就是一些引數我們可能記不住而已,但是我們能大概理清楚列表檢視到底是來幹嘛的,怎麼幹的問題。

引數分析

model = movie  # model

template_name =

"movie.html"

# 載入的模板

context_object_name =

"movies"

# 從資料庫中取出的資料物件

paginate_by =

10# 每頁顯示列表的個數

ordering =

"id"

# 取出的資料按照哪個字段排序

page_kwarg =

'p'# 預設是page,就是url哪個?後面的引數

上面的幾個就不分析了,固定的,也很好記。

下面分析一下paginator和page(page_obj)常用的屬性和方法

paginator

count 總共有多少條資料

num_pages 總共有多少頁

page_range 返回的是range的可迭代物件

page

number:當前頁

有沒有發現這些常用的資料剛好和我們分析乙個列表頁用來幹什麼的怎麼幹很相似呢。

記一次list集合優化

已知某個列表list1有2000條資料,但是因為這個列表的某個欄位要從另乙個表查詢,所以根據乙個關聯的查詢條件查出來的另乙個list2有將近75000條資料,然後需要先迴圈第乙個list1,然後迴圈裡面取尋找list2裡面符合條件的,因為有某種業務邏輯,所以無法減少list2的sql查詢結果數量,所...

記一次使用Set為List去重

遇到乙個需求,把乙個重複的列表去重。我想這還不簡單,我立刻想到了使用set這個集合類,沒有具體研究過,但是知道這個就是可以自動去重的。所以我寫了乙個方法 private list removerepeated list beans return newarraylist set 結果沒有達到理想的效...

記一次的使用

將jsp拆分frame框架,因為採用了第一種方式,一直在考慮用jquery非同步請求獲取資料,總是但不到效果,終於在js寫吐的時候選擇了第二種方式。參考網上的使用,大多是下面這個樣子,如果涉及靜態頁面之間定位,是沒有問題的 href 為目標頁面 通過target定位到frame views main...