Python-django-CBV模式视图

 

1.

  1. 当客户端请求过来之后,会通过 dispatch 方法通过反射自动匹配到 get/post方法

  2. 当执行完get/post请求返回内容前,或经过 dispatch方法后再返回内容

from django.views import View


class MyCBV(View):
    """ 请求发过来,执行 dispatch,然后通过反射找到对应的 get/post方法 """
    """ post,get 方法执行完后返回的结果到达 dispatch 后再返回给用户"""
    def dispatch(self, request, *args, **kwargs):
        """重写 dispatch方法, 在 post/get请求前或返回结果前可以做一些自己的动作"""
        print('请求之前做一些事请......')
        res=super(MyCBV,self).dispatch(request, *args, **kwargs)
        print('请求结束之后做一些事请......')
        return res
    """ 当发送get请求执行此方法 """

    def get(self, request):
        print('get')
        return HttpResponse('CBV.get')

    """当发送post请求执行此方法"""

    def post(self, request):
        return HttpResponse('CBV.post')

 

 

2.

path('cbv.html', MyCBV.as_view(), name='cbvAction'),

 

posted @ 2021-01-30 22:34  leungqingyun  阅读(57)  评论(0编辑  收藏  举报