django CBV和FBV寫法總結
阿新 • • 發佈:2018-12-04
一、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 returnrender(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