Django之FBV&CBV
阿新 • • 發佈:2018-11-20
hid port wrap es6 *args cnblogs login imp .com
?
CBV與FBV是django視圖中處理請求的兩種方式
FBV
FBV也就是function base views,字面意思函數基礎視圖,使用函數的方式處理請求
url分發中添加的參數為視圖處理函數名,
path(‘login/‘,views.login )
視圖中以此函數名建立處理函數
def login(req):
if req.method==‘POST‘:
pass
if req.method==‘GET‘:
pass
CBV
CBV也就是class base views,使用類的方式在視圖中處理請求
url分發添加如下
path(‘login/‘,views.login.as_view())
這裏的login為視圖中建立的類,as_view()為這個類的classonlymethod,這個方法會在內部調用dispatch函數,這個函數會根據請求方式的不同,來調用不同的處理函數如post(),get()等,所以我們要在視圖中重寫這些處理函數
class login(views.View):
def get(self,req,*args,**kwargs):
pass
def post(self,req,*args,**kwargs):
pass
這裏定義類時要繼承views.View類
對於類的屬性,可以在類的定義中定義,也可以在as_view()中添加,如as_view(name=’sfencs’)
Django之FBV&CBV