通過 cbv 繼承的 view 原始碼,可以看到通過呼叫 as_view 中的 view 方法,最後返回的是對應類的 self.dispatch(request, *, **)。
那麼可以在呼叫 dispatch 之前做乙個 session 驗證,實現登入驗證。
return httpresponse('使用者名稱密碼不能為空')
else:
user_obj = models.userinfo.objects.filter(username=username, password=password)
if user_obj.first(): # 登入成功
request.session['login'] = user_obj.first().name # 建立session
return redirect('/session')
else: # 登入失敗
return httpresponse('使用者名稱密碼錯誤')templates/login.html
FBV與CBV 及CBV原始碼分析
fbv function based view 基於函式的檢視 基於函式的檢視,我們一直在用沒啥好講的,就是匯入模組呼叫函式執行業務 cbv class based view 基於類的檢視 路由 url r haha views.zx view.as view 檢視 class zx view vi...
CBV和FBV實現驗證登入
cbv加裝飾器 class url r login.html views.login.as view 類名的關聯方法 在執行前後做一些操作,此時是輸出post或者get。cbv加裝飾器方法 defget self,request,args,kwargs return render request,l...
Django框架 CBV及原始碼分析
cbv 基於類的檢視函式 示例 urls.py url r login views.mylogin.as view views.py from django.views import view class mylogin view defget self,request print from myl...