有多種方法可以實現:
使用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