Django 登录检查-自动重定向到登录页

Posted wcwnina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 登录检查-自动重定向到登录页相关的知识,希望对你有一定的参考价值。

编写一个Mixin类

from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator


class LoginRequiredMixin(object):
    """
    登录验证:如果未登录,自动重定向到登录页面
    """

    @method_decorator(login_required(login_url=/myuser/login/))       # 类方法装饰器,传入login_required装饰器
    def dispatch(self, request, *args, **kwargs):                       # 必须重写分发方法dispatch,自动识别分发给get或post方法
        return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)

类视图继承之

class UserCenInfoView(LoginRequiredMixin, View):         # 注意继承顺序
    def get(self, request):
        ...
    def post(self, request):
        ...

 

关于Mixin类

Mixin:在设计类的继承关系时,通常,主线都是单一继承下来的,如果需要"组合"额外的功能,通过多重继承就可以实现,这种设计通常称之为Mixin(混合)。
Mixin类一般以Mixin为后缀,使用Mixin类实现多重继承需要注意:
1)首先,它必须表示某一种辅助功能,而不是某个事物;
2)其次,它必须功能单一,如果有多个功能,那就写多个Mixin类;
3)再者,它不依赖于子类的实现;
4)最后,子类即便没有继承这个Mixin类,也照样可以工作,就是缺少了某个功能(比如飞机照样可以载客,就是不能飞了^_^)。

 

  至此。转载请注明出处。

技术分享图片






以上是关于Django 登录检查-自动重定向到登录页的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 中,登录后将用户重定向到上一页

Django LogoutView 重定向到上一页

django 403 禁止 - 重定向到登录

Vue SPA - 检查用户是不是通过身份验证,如果没有则重定向到登录

当我有“下一个”网址时,如何禁用网址重定向? - 姜戈

用户未登录或Session超时时重定向到登录页,不那么简单