• Python CBV和FBV


    '''
    说一下CBV(class+base+views)和FBV(function+base+views),我们之前Django 里写的都是FBV,今天看一下
    CBV,也就是在我们的视图函数里写类
    '''
    CBV 总结:
    1、
    from django.views import View
    class CBVTest(View): #这里我们的class 得继承View,这里我么看一下View的源码,支持的http方法为http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
        def dispatch(self, request, *args, **kwargs): # 这里我们可以重写父类的分发方法
            print('111')
            obj=super().dispatch(request,*args,**kwargs)
            return obj
    		
        def get(self,request): # 这里所有的get请求都会走到这里,这里我们在urlpattern里views.CBVTest.as_view(),我们看一下as_view的源码知道,他会返回一个view,这个到时候要是get请求,那么这里就会调用views.CBVTest.get函数
            print(request.method)
            return render(request,'test.html')
        def post(self,request):
            name=request.POST.get('name')
            pwd=request.POST.get('pwd')
            if name=='bigbao' and pwd=='123':
                return HttpResponse('登录成功')
            else:
                return render(request,'test.html')
    2、修改urls.py
    	path('test/',views.CBVTest.as_view())
    	
    其实上面的和FBV是一样的,我们可以通过requst.method=='GET'来判断然后操作是一样的
    

      

  • 相关阅读:
    bzoj1996
    bzoj2839
    bzoj1304
    bzoj1097
    bzoj4547
    bzoj3379
    bzoj3090
    树莓派/Debian 构建LAMP Web服务器并搭建WordPress博客(一)
    树莓派/Debian Apache2 配置自建 CA 实现 HTTPS(SSL) 服务
    树莓派/Debian Apache2 实现 HTTPS(SSL) 服务
  • 原文地址:https://www.cnblogs.com/smail-bao/p/9646736.html
Copyright © 2020-2023  润新知