zoukankan      html  css  js  c++  java
  • 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'来判断然后操作是一样的
    

      

  • 相关阅读:
    总结第一、二类斯特林数(模板)
    总结组合数的几种求法(模板)
    HDU5521 Meeting(dijkstra+巧妙建图)
    BZOJ4152 The Captain(dijkstra+巧妙建图)
    CF1194D 1-2-K Game (博弈论)
    JavaScript字符串的操作
    JavaScript基础–闭包
    JavsScript基础–声明提升
    JavaScript基础–作用域
    css基础(一)
  • 原文地址:https://www.cnblogs.com/smail-bao/p/9646736.html
Copyright © 2011-2022 走看看