django基础-视图CBV装饰器用法

cbv:基于类的视图

from django.views import View
                from django.utils.decorators import method_decorator
                
                @method_decorator(csrf_protect,name='dispatch')
                class Foo(View):
                    
                    def get(self,request):
                        pass

                    def post(self,request):
                        pass
		PS:CBV中添加装饰器
			def wrapper(func):
				def inner(*args,**kwargs):
					return func(*args,**kwargs)
				return inner
			# 1. 指定方法上添加装饰器

				# class Foo(View):
				#
				#     @method_decorator(wrapper)
				#     def get(self,request):
				#         pass
				#
				#     def post(self,request):
				#         pass
			# 2. 在类上添加
				#     @method_decorator(wrapper,name='dispatch')
				#     class Foo(View):
				#
				#         def get(self,request):
				#             pass
				#
				#         def post(self,request):
				#             pass

  

from django.views import View
class Login(View):
    """
    get     查
    post    创建
    put     更新
    delete  删除
    """
    def dispatch(self, request, *args, **kwargs):
        print('before')
        obj = super(Login,self).dispatch(request, *args, **kwargs)
        print('after')
        return obj

    def get(self,request):

        return render(request,'login.html')

    def post(self,request):
        print(request.POST.get('user'))
        return HttpResponse('Login.post')

  

fbv:基于函数的视图,就是一般用的视图

 

posted @ 2017-09-22 17:38  Adamanter  阅读(257)  评论(0编辑  收藏  举报