django之CBV模式,反向查詢及自帶分頁

2021-09-24 02:17:45 字數 2385 閱讀 6554

1.orm操作之cbv操作

cbv模式:基於類的檢視模組

fbv模式:基於函式的試圖模組

1.1.cbv模式的url格式

url(r'^test\.html$',views.test.as_view()),

1.2.cbv模式的檢視內容

'''django中預設支援http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']訪問方式

當匹配完url後,首先執行view中的dispatch方法;通過反射的方式獲得訪問方式所對應的響應方法

可以利用dispa方法實現裝飾器的功能

'''def dispatch(self, request, *args, **kwargs):

print("執行響應方法前執行的內容")

response_func = super().dispatch(request,*args, **kwargs)

print("執行響應方法後執行的內容")

return response_func

# 定義乙個響應get請求的方法

# 定義乙個響應post請求的方法

1.3.cbv模式中響應函式的名稱與訪問方式相同,通過訪問方式執行響應函式

2.orm外來鍵之方向查詢

正向查詢:即通過外鍵名跨表到外來鍵所依賴的表中

反向查詢:通過隱藏的字段(表的類名小寫_set)跨表到外來鍵所在表中

# 外來鍵方向查詢

scline = models.school.objects.filter(sid=1)

print("學校資訊:",scline[0].sid,scline[0].sc_name)

print("學校所對應的班級資訊:")

class_list = scline[0].classes_set.all()

for row in class_list:

print(row.cid,row.class_name)

2.1.orm操作之通過values獲取指定字段返回字典

r1 = models.classes.objects.all().values("class_name")

print("r1:",r1)

# orm操作之通過values_list獲取指定字段返回元組

# r1:

r2 = models.classes.objects.all().values_list("class_name")

print("r2:", r2)

# r2: < queryset[('class',), ('class',), ('newuser03',), ('class',), ('class',)] >

# orm之通過values或values_list實現跨表操作

r3 = models.classes.objects.all().values("class_name", "cs__sc_name")

print("r3:", r3)

# r3:

3.django做分頁

def test(request):

current_page = requests.get.get("page")

from django.core.paginator import paginator,page

# 獲取所有資料

class_list = models.classes.objects.all()

# args1:要顯示的資料,args2:分成多少頁

paginator = paginator(class_list,10)

# 當前顯示第幾頁

posts = paginator.page(current_page)

return render(requests,'index.html',)

3.1分頁的頁面**:

#id班級名稱

}}

}新增班級

Django高階之FBV和CBV

django的請求生命週期是指當使用者在瀏覽器上輸入url到使用者看到網頁的這個時間段內,django後台所發生的事情。當使用者在瀏覽器中輸入url時,瀏覽器會生成請求頭和請求體發給服務端。url經過django中的wsgi,再經過django的中介軟體,最後到達路由對映表,在路由中一條一條進行匹配...

Django之URL反向解析

在反向解析和命名空間之前我們先來說說urls硬編碼,用django 開發應用的時候,可以完全是在urls.py 中硬編碼配置位址,在views.py中httpresponseredirect 也是硬編碼轉向位址,當然在template 中也是一樣了,這樣帶來乙個問題,如果在urls.py 中修改了某...

Django之url反向解析

在urls.py檔案中,在進行url對映時,為請求的url命個名,以便在模板頁面或者views.py檢視中可以進行反向解析,同時在修改了url對映的請求路徑,名稱不變的情況下,不再修改模板頁面或者檢視中的資料,專案不受影響正常執行!url標籤中使用模板變數 和普通標籤引數一樣,空格隔開,即可。url...