login.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import logging
  2. from django.contrib import auth
  3. from django.contrib.auth.decorators import login_required
  4. from django.http import HttpResponseRedirect
  5. from django.shortcuts import render
  6. # Create your views here.
  7. from system.enum import status
  8. from system.error.ServerException import ServerException
  9. LOG = logging.getLogger('blog.views')
  10. def login(request):
  11. if request.method == 'POST':
  12. username = request.POST.get("username")
  13. password = request.POST.get('password')
  14. logging.info('{0} {1} 用户尝试登录'.format(username, password))
  15. context = {
  16. 'msg': '',
  17. }
  18. if username is None or password is None:
  19. request.session['msg'] = status.USER_OR_PASSWORD_NOT_EMPTY
  20. return HttpResponseRedirect('/') # 跳转到主界面
  21. else:
  22. user = auth.authenticate(username=username, password=password)
  23. if user is not None:
  24. auth.login(request, user)
  25. request.session["login_user"] = user
  26. request.session["is_login"] = True
  27. request.session['msg'] = ''
  28. LOG.info("登录成功")
  29. return HttpResponseRedirect('/management') # 跳转到主界面
  30. else:
  31. request.session['msg'] = status.USER_OR_PASSWORD_ERROR
  32. return render(request, 'login.html')
  33. else:
  34. if request.session.has_key('is_login') and request.session['is_login']:
  35. return HttpResponseRedirect('/management') # 跳转到主界面
  36. else:
  37. return render(request, 'login.html')
  38. @login_required(login_url='/')
  39. def logout(request):
  40. request.session["login_user"] = None
  41. request.session["is_login"] = False
  42. request.session['msg'] = ''
  43. auth.logout(request)
  44. return HttpResponseRedirect('/') # 跳转到主界面