前言
之前我們在路由匹配的時候,乙個url對應乙個函式,其實我們還可以乙個url對應乙個類,這個就是cbv,下面我們來簡單的介紹一下cbv
一、cbv的基本用法
1、在路由匹配中要這樣寫,class_login是對應的類,as_view()是固定寫法,必須要這麼寫,記住後面有個括號
url(r'^class_login/', views.class_login.as_view()),
2、在檢視函式中匯入乙個模組
from django import views
3、在檢視函式中寫乙個類,如果是get請求,則執行get方法,如果是post請求,則執行post方法
class class_login(views.view):
# 1、如果是get請求,則執行get函式
# 2、如果是post請求,則執行post函式
def post(self,request,*args,**kwargs):
pass
4、post和get請求是最常見的,還有其他的方法,我們看下檢視函式中繼承的父類view中的方法,還支援如下這麼多的方法
http_method_names = ['get', 'post', 'put',程式設計客棧 'patch', 'delete', 'head', 'options', 'trace']
二、裝飾器
上面基本的用法我們就已經介紹完了,如果要用裝飾器,該怎麼弄呢?
1、需要匯入乙個模組
from django.utils.decorators import method_decorator
2、然後定義乙個裝飾器
def outer(func):
def inner(request,*args,**kwargs):
print(request.method)
rep = func(request,*args,**kwargs)
return rep
return inner
3、我們該如何把裝飾器加的類中的,就需要用到我們第一步匯入的模組了
3_1、為類中的乙個函式新增裝飾器,方法如下
3_2、為類中的所有的方法新增裝飾器,方法如下
@method_decorator(outer,name="dispatch")
class class_login(views.view):
# 1、如果是get請求,則執行get函式
# @met程式設計客棧hod_decorator(outer)
# 2、如果是post請求,則執行post函式
def post(self,request,*args,**kwargs):
pass
dispatch就是django預設給我們定義的方法,在執行get或者post方法之前會執行的乙個方法
4、子類如果想呼叫父類的方法,有兩種方法來實現
class login(views.jajwfffwuoview):
def dispatch(self, request, *args, **kwargs):
# 呼叫父類的dispatch方法的兩種方法
# 方式1
super(login,self).dispatch(request,*args,**kwargs)
# 方式2
super().dispatch(request, *args, **k程式設計客棧wargs)
程式設計客棧 return httpresponse("post")
本文標題: django cbv類的用法詳解
本文位址:
C stringstream類用法詳解
本文主要介紹 c 中 stringstream 類的常見用法。定義了三個類 istringstream ostringstream 和 stringstream,分別用來進行流的輸入 輸出和輸入輸出操作。本文以 stringstream 為主,介紹流的輸入和輸出操作。主要用來進行資料型別轉換,由於 ...
Random類的用法與詳解
random類生成的隨機數其實是偽隨機,即就是有規律的隨機數。無參構造的話,以當前系統時間為種子,隨機生成數字。有參構造的話,引數是乙個種子數。給定乙個種子數,其生成的隨機數不管生成多少次,它的隨機數都是一樣的。該方法的引數是隨機數生成的區間 約束 例如nextint 10 0,10 包括0不包括1...
c 中pair類模板的用法詳解
pair 標頭檔案 include 類模板 template struct pair 引數 t1是第乙個值的資料型別,t2是第二個值的資料型別。功能 pair將一對值組合成乙個值,這一對值可以具有不同的資料型別 t1和t2 兩個值可以分別用pair的兩個公有函式first和second訪問。具體用法...