views.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from django.shortcuts import render, redirect
  2. from .form import UserLoginForm, UserRegisterForm
  3. from django.contrib.auth import authenticate, login, logout
  4. from django.http import HttpResponse
  5. def user_login(request):
  6. if request.method == 'POST':
  7. user_login_form = UserLoginForm(request.POST)
  8. if user_login_form.is_valid():
  9. # 清洗出合法的数据
  10. data = user_login_form.cleaned_data
  11. # 检测账号密码是否匹配数据库中的一个用户
  12. # 如果均匹配,则返回此User对象
  13. user = authenticate(username=data['username'], password=data['password'])
  14. if user:
  15. login(request, user)
  16. return redirect("chat:index")
  17. else:
  18. return HttpResponse("账号或密码输入不正确,请重新输入")
  19. else:
  20. return HttpResponse("输入不合法,请重新输入")
  21. elif request.method == 'GET':
  22. user_login_form = UserLoginForm()
  23. context = {'form': user_login_form}
  24. return render(request, 'login.html', context)
  25. else:
  26. return HttpResponse("请使用GET或者POST请求数据")
  27. def user_logout(request):
  28. logout(request)
  29. return redirect("chat:index")
  30. def user_register(request):
  31. if request.method == 'POST':
  32. user_register_form = UserRegisterForm(data=request.POST)
  33. if user_register_form.is_valid():
  34. new_user = user_register_form.save(commit=False)
  35. new_user.set_password(user_register_form.cleaned_data['password'])
  36. new_user.save()
  37. return redirect("account:login")
  38. else:
  39. return HttpResponse('注册表单输入有误,请重新输入')
  40. elif request.method == 'GET':
  41. user_register_form = UserRegisterForm()
  42. context = {'form': user_register_form}
  43. return render(request, 'register.html', context)
  44. else:
  45. return HttpResponse('请使用POST或GET请求数据')