zoukankan      html  css  js  c++  java
  • Django自定义装饰器

    装饰器模板:

    def decorator(func):
        def wrapper(*args,**kwargs):
            return func(*args,**kwargs)  
        return wrapper
    

      

    装饰器应用:

    def log_in(func):
        '''身份认证装饰器,
        :param func:
        :return:
        '''
        def wrapper(request,*args,**kwargs):
            if not request.session.get("is_login"):
                return redirect("/book/login/")
            return  func(request,*args, **kwargs)
        return wrapper
    
    @log_in #author=log_in(author) 
    def author(request):
        author_list = models.Author.objects.all()
        return render(request, "author.html", {"authorList": author_list})
    

      

    from django.contrib.auth.decorators import login_required
    from django.utils.decorators import method_decorator
    from django.views.generic import TemplateView
    
    class ProtectedView(TemplateView):
        template_name = 'secret.html'
    
        @method_decorator(login_required)
        def dispatch(self, *args, **kwargs):
            return super(ProtectedView, self).dispatch(*args, **kwargs)
    

      

  • 相关阅读:
    P3275 [SCOI2011]糖果 题解
    hdu 2962 题解
    hdu 2167 题解
    hdu 2476 题解
    hdu 5418 题解
    2019.10.16&17小结
    poj 3061 题解(尺取法|二分
    poj 1852&3684 题解
    NOIP2017[提高组] 宝藏 题解
    一类经典问题的解法
  • 原文地址:https://www.cnblogs.com/pythonClub/p/9864603.html
Copyright © 2011-2022 走看看