1. 程式人生 > >Django編寫類方式驗證登陸

Django編寫類方式驗證登陸

在檢視函式中,有些操作是需要使用者在登入前提下才能進行的。

方法一: 
採用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

第二種方式方便很多檢視函式的繼承,第一種方式用於頁面中部分內容的判定。