使用者登入:
def logon(request):
errors_list = []
if request.method == 'POST':
u = request.POST['uname']
p = request.POST['upass']
#驗證使用者
user = authenticate(username=u, password=p)
if user is not None:
auth_login(request, user)
#登入成功後重定向到首頁
return HttpResponseRedirect("/sinfors/")
else:
try:
#檢查使用者密碼是否正确
if not auth_User.objects.get(username = u).check_password(p):
errors_list.append(u + ' password is not correct')
#檢查使用者是否存在(auth_User.objects.get(username = u))
except auth_User.DoesNotExist:
errors_list.append(u + ' does not exist')
return render(request, 'sinfors/login.html', {'errors_list':errors_list})
頁面添加認證:
#對頁面增加驗證
@login_required(login_url="/sinfors/logon/")
def index(request):
servers = infor.objects.all()
#驗證如果使用者登入成功,則取相應的使用者名顯示在首頁
if not request.user.is_anonymous():
user_loggedin = request.user
else:
user_loggedin = 'Guest'
context = {'servers':servers,'user_loggedin':user_loggedin}
return render(request,'sinfors/index.html',context)
新增使用者,修改/驗證密碼:
#建立使用者
user = User.objects.create_userusername='',password='',email='')
user.save #不使用user.save()
#重置密碼
user.set_password(passeord='')
user.save
#檢查使用者輸入的密碼是否正确
user.check_password('password')
擴充使用者字段:
class UserProfile(models.Model):
user=models.OneToOneField(User,unique=True)
phone=models.CharField(max_length=20)
addr=models.CharField(max_length=500)
def ztest(self):
if len(self.phone) < 8:
return 'The phone num is not correct'
else:
return 'The phone num is correct'
def phone_len(self):
return len(self.phone)
p_len = property(phone_len) #custom a property
print request.user.userprofile.phone
print request.user.userprofile.user
print request.user.UserProfile
print dir(UserProfile)
UserProfile.C_userp('test01','03129999999','HB'):
u = auth_User.objects.get(username='test')
a=UserProfile.objects.get(user=u)
print a.ztest()
print a.p_len
uu=request.user
u = auth_User.objects.get(username=uu)
a=UserProfile.objects.get(user=u)
print dir(UserProfile.objects)
print a
UserProfile.C_userp(uu,'12345','AH')