class User(AbstractUser):
avatar=models.ImageField(upload_to='vaatar/%Y/%m',default='vaatar/default/pang')
qq=models.CharField(u'qq号码', max_length=20,blank=True)
mobile=models.CharField(u'手机号',max_length=11,blank=True,null=True,unique=True)
login_sta = models.CharField(u'登录是否锁定', max_length=2, default=0)
login_suo = models.DateTimeField(u'登录锁定时间')
pass_errnum=models.IntegerField(u'用户密码输入次数',default=0)
is_login = models.BooleanField(default=False)
class Meta:
verbose_name = u'用户'
verbose_name_plural = verbose_name
ordering=['-id']
def __str__(self) :
return self.username
from django.contrib.auth.hashers import make_password, check_password
from django.http import Http404, HttpResponseRedirect
from django.shortcuts import render, redirect
from django.views.generic.base import View
class LoginView(View):
def get(self,request):
return render(request, 'login.html')
def post(self,request):
next = request.META.get('HTTP_REFERER')
username=request.POST.get('username',None)
password=request.POST.get('password',None)
try:
user = User.objects.get(username= username)
if user.is_login==True:
return render(request, 'login.html', {'msg': '同时只能登陆一台设备!'})
if user.login_sta==True:
return render(request, 'login.html', {'msg': '账号已经冻结!'})
if (datetime.datetime.now()-user.login_suo).total_seconds() <600:
return render(request, 'login.html', {'msg': '账号锁定十分钟内不能登陆!'})
if user.pass_errnum>5:
user.login_suo=datetime.datetime.now()
return render(request, 'login.html', {'msg': '密码输入超过5次,用户锁定十分钟'})
if check_password(password,user.password) :
request.session['username'] = username
if '/logout' or '/reg' in next:
response = HttpResponseRedirect('/')
else:
response= HttpResponseRedirect(next)
user.last_login=datetime.datetime.now()
user.is_login=True
user.pass_errnum=0
user.save()
response.set_cookie('username', username, 3600)
return response
user.pass_errnum+=1
user.save()
return render(request, 'login.html', {'msg': '密码错误'})
except:
return render(request,'login.html',{'msg':'用户名不存在!'})
class LogoutView(View):
def get(self,request):
try:
user = User.objects.get(username__exact=request.session['username'])
user.last_login=datetime.datetime.now()
user.is_login=False
user.save()
del request.session['username']
return render(request,'index.html')
except:
return HttpResponseRedirect('/')
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有