1. 程式人生 > >python-Django使用自帶的登入驗證

python-Django使用自帶的登入驗證

在django裡面登入的動作其實不難就是資料的對比,但是難的是登入驗證,主要是為了解決沒有登入之前頁面是無法檢視的並自動跳轉到login頁面

django自帶的驗證的話非常簡單使用authenticate方法實現資料庫對比,對比的資料庫是django後臺自帶的資料庫,並且密碼本身就是加密過的

login函式實現會話儲存

以下是我的程式碼:

class UserForm(forms.Form):

username = forms.CharField(label=’使用者名稱:’,max_length=100,widget=forms.TextInput(attrs={‘class’:’txt_input txt_input2′}))

password = forms.CharField(label=’密碼:’,widget=forms.PasswordInput(attrs={‘class’:’txt_input txt_input2′}))

def logins(request):

if request.method == “POST”:

uf = UserForm(request.POST)

if uf.is_valid():

username = uf.cleaned_data[‘username’]

password = uf.cleaned_data[‘password’]

user = authenticate(username=username, password=password) #預設是django admin自帶的密碼錶

if user is not None:

login(request,user) #加驗證過後的密碼報錯到session

return redirect(‘index’)

else:

error = ” Sorry! Username and Password didn’t match, Please try again ! “

else:

uf = UserForm()

return render_to_response(‘pages/login.html’, {‘uf’: uf})

這種方法我只做了一個登入沒有做其他的因為我感覺這個比較不安全,使用後臺的帳號登入的話也就是註冊的帳號密碼都是可以登入後臺操作的。實現的頁面效果也是差不多的 前端程式碼也一樣