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