1. 程式人生 > >django CBV和FBV寫法總結

django CBV和FBV寫法總結

一、FBV

  function base views 平常我們的寫法,一個URL對應一個檢視函式

二、CBV

  1、url 配置

 path('test/',views.CBVTest.as_views())

     2、from  django.views import View

    前臺發過來的get請求,就會相應get方法,post就會相應post方法,get方法和post方法裡面跟FBV一樣

 1 class CBVTest(View):
 2     def get(self,request):
 3         print(request.method)
4 return render(request,'test.html') 5 def post(self,request): 6 name = request.get('name') 7 print(name) 8 pwd = request.get('pwd') 9 if name == 'wudi' and pwd == '123': 10 return HttpResponse('登陸成功') 11 else: 12 return
render(request,'test.html')

 

三、dispatch的使用

  dispatch,相當於重寫父類的用法,不加入dispatch則直接走父類的,寫了則走自己寫的類

class Test(View):
    def dispatch(self,request,*args,**kwargs):
        print('111')
        #或者加入對訪問頻率過多的IP進行限制過濾,對未登入的使用者限制
        obj = super().dispatch(request,*args,**kwargs)
        print(
'222') #obj.set_cookie return obj def get(self,request):
    print('333') print(request.method)
return render(request,'test.html') def post(self,request): name = request.get('name') print(name) pwd = request.get('pwd') if name == 'wudi' and pwd == '123': return HttpResponse('登陸成功') else: return render(request,'test.html')

結果:

  111

  333

  222

    

CBVTest