問題:
Django官方教程中都是通過def函數方式來寫view,如何通過類方式寫view以及為何要通過類方式寫view?
那,如何解決這個問題?
- 用戶訪問瀏覽器,一般兩種方式,get獲取網頁和post提交數據,get也可以提交數據,以一種明文形式顯示在url中,post提交的數據url中不顯示,一種安全的數據提交方式,get方式提交數據一般應用於一些排序方式和類別過濾中,post用於用戶提交的表單數據,比較隱私的數據,get方式提交數據為小數據信息,而post方式提交數據可以是大數據信息
- 導入View基類
- 寫一個view類,繼承View基類,下面有兩個方法,get和post方法
- 在urls中通過類方法.as_view() 方式 調用這個view類
- 通過前端提交數據的方式,采用不同的方法,實現url復用,也就是或get和post共用一個url,如果函數方式寫view需要寫判斷提交方式邏輯,還有類實現了很好的封裝,而函數沒有,很容易被其他函數影響
__author__ = 'beimenchuixue' __blog__ = 'http://www.cnblogs.com/2bjiujiu/' # 導入View基類 from django.views.generic.base import View # 導入模版渲染函數 from django.shortcuts import render # 這個是用戶登錄的驗證類 class LoginView(View): """登錄驗證""" # get方式獲login頁面 def get(self, request): return render(request, 'login.html', {}) # 用戶提交表單,返回主頁 def post(self, request): """提交表單""" return render(request, 'index.html', {})
urls中,導入LoginView,調用.as_view方法
url(r'^login/$', LoginView.as_view(), name='login')