zoukankan      html  css  js  c++  java
  • 十九. Django-Cookie的CBV和FBV的用户验证装饰器

    一. Cookie的CBV和FBV的用户验证装饰器

    1. 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})

    2. 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')
  • 相关阅读:
    word-wrap和word-break
    sass编译生成的几个文件
    block settings drupal 8 configuration
    cookie 和 session
    程序员思维
    psr-0 和 psr-4
    eclipse的字符编码问题
    合并代码并上传
    如何部署代码
    301 CACHE
  • 原文地址:https://www.cnblogs.com/lovershowtime/p/11365841.html
Copyright © 2011-2022 走看看