Django編寫類方式驗證登陸
阿新 • • 發佈:2019-02-07
在檢視函式中,有些操作是需要使用者在登入前提下才能進行的。
方法一:
採用request方法來得到使用者是否登入資訊:
if request.user.is_authenticated():
...
else:
return render(requeset, 'login.html')
- 1
- 2
- 3
- 4
方法二:
在試圖函式中繼承一個基礎類,可以判斷使用者是否登入。
在utils.py中定義一個基礎類:
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
class LoginRequiredMixin(object):
"""
判斷使用者是否登入
"""
@method_decorator(login_required(login_url='/login/'))
def dispatch(self, request, *args, **kwargs):
return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
在編寫檢視函式時,繼承該類:
from utils import LoginRequiredMixin
class CourseCommentView(LoginRequiredMixin, View):
"""
課程評論
"""
def get(self, request):
pass
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
第二種方式方便很多檢視函式的繼承,第一種方式用於頁面中部分內容的判定。