• 基于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')
  • 相关阅读:
    PDA固定资产条码管理系统软件-解决固定资产实物清查的瓶颈问题,大大提高清查效率
    互联网+下PDA移动智能手持POS超市收银开单软件
    搭建免费代理池
    解析库beautifulsoup
    爬取汽车之家新闻
    请求库之requests库
    网络状态码301与302
    正向代理与反向代理
    垃圾回收机制详解
    HTTP协议详解
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/9067121.html
Copyright © 2020-2023  润新知