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')
相关文章
相关标签/搜索