post实现用户登录业务逻辑
class LoginView(View):
def get(self, request):
'''
提供登陆界面
request 请求对象
:return: 登陆界面
'''
def post(self, request):
'''
# 实现登陆逻辑
:param request: 请求对象
:return: 登陆结果
'''
username = request.POST.get('username')
password = request.POST.get('password')
remembered = request.POST.get('remembered')
if not re.match(r'^[a-zA-Z0-9_-]{5,20}$', username):
return http.HttpResponseBadRequest('请输入正确的用户名或手机号')
if not re.match(r'^[0-9A-Za-z]{8,20}$', password):
return http.HttpResponseBadRequest('密码最少8位,最长20位')
user = authenticate(username=username, password=password)
if user is None:
return render(request, 'login.html', {'account_errmsg':'用户名或密码错误'})
login(request, user)
if remembered != 'on':
request.session.set_expiry(0)
else:
request.session.set_expiry(None)
return redirect(reverse('contents:index'))