Django如何让未登录的用户自动跳转至登录页


有多种方法可以实现:

使用Django自带的用户认证

from django.contrib.auth.decorators import login_required
@login_required
def homepage(request):
    pass

这样子使用即可。

使用middleware

class CustomAuthMiddleware(object):
def process_view(self, request, view_func, view_args, view_kwargs):
    if request.path.startswith('/no-auth'):
        return None
    if request.path.startswith('/need-auth'):
        return redirect('/no-auth/login/')

然后把自定义的middleware添加到settings.py中的MIDDLEWARE_CLASSES最后。

更加自由的,使用自己的修饰器来写。

def user_required(func):
@functools.wraps(func)
def first_wrapped(*args, **kwargs):
    auth_user_done_by_yourself(*args, **kwargs)  # 自定义认证方式
    return func(*args, **kwargs)
return first_wrapped

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM