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