Django CBV和FBV

Django CBV和FBVhtml

Django內部CBV內部接收方法操做:服務器

一、經過客戶端返回的請求頭RequestMethod與RequesrtURL,會以字符串形式發送到服務器端。函數

二、取到值後經過dispatch方法將請求頭轉換爲小寫,而後經過反射查找類裏的對應方法。url

  • /index/ -> 函數名
  • /index/ -> 類

注:FBV & CBV 建議二者都用。spa


FBV:function base viewcode

# url.py
index -> 函數
urlpatterns = [
            path('admin/', admin.site.urls),
           path('index/', views.函數名),
]

# view.py
def 函數名(request):
            return HttpResponse('Index')

CBV:class base viewhtm

# url.py
index -> 類
urlpatterns = [
           path('admin/', admin.site.urls),
            path('home/', views.類名.as_view()),
]

# view.py
class 類名(View):
  # 調用父類中的dispatch,保留父類功能的基礎上增長功能
  def dispatch(self, request, *args, **kwargs):
            print("定製功能1")
            result = super(Home,self).dispatch(request,*args,**kwargs)
            print("定製功能2")
            return result

  def get(self,request):
            return render(request,'home.html')
相關文章
相關標籤/搜索