基于Django-Cookie的CBV和FBV的用户验证装饰器

Posted 追风的小蚂蚁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Django-Cookie的CBV和FBV的用户验证装饰器相关的知识,希望对你有一定的参考价值。

FBV模式


def cookie(func):  
    def deco(request,*args,**kwargs):    
        u = request.get_signed_cookie(username, salt=user, default=None)  
        if not u:  
            return render(request,login.html)  
        return func(request,*args,**kwargs)  
    return deco  
  
@cookie  
def houtai(request):  
    u = request.get_signed_cookie(username,salt=user,default=None)  
    return render(request,houtai.html,{user:u})

CBV模式


 

from django.utils.decorators import method_decorator  
from django import views  
  
# @method_decorator(cookie,name=‘dispatch‘)    # dispatch的便捷写法  
class CBVtest(views.View):  
  
    @method_decorator(cookie)   # 给dispatch方法添加装饰器,那么下面所有的get,post都会添加  
    def dispatch(self, request, *args, **kwargs):  
        return super(CBVtest,self).dispatch(request,*args,**kwargs)  
  
    # @method_decorator(cookie)  
    def get(self,request):  
        u = request.get_signed_cookie(username,salt=user,default=None)  
        return render(request,houtai.html,{user:u})  
  
    def post(self,request):  
        return HttpResponse(post ok)

 

以上是关于基于Django-Cookie的CBV和FBV的用户验证装饰器的主要内容,如果未能解决你的问题,请参考以下文章

django 的cbv和fbv

Django~FBV和CBV

FBV与CBV 及CBV源码分析

python测试开发django-73.django视图 CBV 和 FBV

Flask -- CBV

FBV & CBV