Django(38)FBV和CBV

1,FBV
FBV(function base views) 就是在视图里使用函数处理请求。
urls.py

urlpatterns = [
    # url(r‘^admin/‘, admin.site.urls),
    url(r‘^index/‘, views.index),
]

views.py

def index(request):
    return HttpResponse("index")

2,CBV
CBV(class base views) 就是在视图里使用类处理请求。
urls.py

urlpatterns = [
    # url(r‘^index/‘, views.index),
    url(r‘^index/‘, views.Index.as_view()),
]

views.py

from django.views import View
 
 
class Index(View):
    def get(self, req):
        print(‘method is :‘ + req.method)
        return render(req, ‘index.html‘)
 
    def post(self, req):
        print(‘method is :‘ + req.method)
        return render(req, ‘index.html‘)

类要继承 View ,类中函数名必须小写。
CBV和FBV的底层实现本质上相同的。


CBV,其实就是在FBV的基础上进行的功能的扩展,根据请求的方式不同,直接定位到不同的函数中去执行。

posted @ 2021-12-11 22:47  下个ID见  阅读(96)  评论(0)    收藏  举报