1. from django.shortcuts import render,HttpResponse,redirect
    2. from django.contrib import auth
    3. # Create your views here.
    4. #登录
    5. def login(request):
    6. if request.method=='POST':
    7. username = request.POST.get('username')
    8. password = request.POST.get('password')
    9. user_obj= auth.authenticate(request,username=username,password=password)
    10. """
    11. 1.自动查找auth_user表
    12. 2.自动给密码加密后再比对
    13. """
    14. if user_obj:
    15. #保存用户状态
    16. auth.login(request,user_obj)
    17. return render(request,'login.html')
    18. from django.contrib.auth.decorators import login_required
    19. # @login_required(login_url='/login/')
    20. #装饰器,登陆后才能访问
    21. # 没有登录则访问login_url参数后的页面(局部配置)
    22. # 全局配置:
    23. @login_required
    24. # 在settings中配置LOGIN_USER='/login/'
    25. # 配置了以后不需要login_url参数
    26. def home(request):
    27. return HttpResponse('home')
    28. #修改密码
    29. @login_required
    30. def setpwd(request):
    31. if request.method == 'POST':
    32. oldpassword = request.POST.get('oldpassword')
    33. newpassword = request.POST.get('newpassword')
    34. confirm_newpassword = request.POST.get('confirm_newpassword')
    35. #校验新密码是否一致
    36. if newpassword == confirm_newpassword:
    37. #校验老密码是否正确
    38. ans = request.user.check_password(oldpassword) #自动加密比对密码
    39. if ans:
    40. #修改密码(仅修改对象属性)
    41. request.user.set_password(newpassword)
    42. #修改内容作用于数据库
    43. request.user.save()
    44. return render(request,'setpwd.html',locals())
    45. #注销
    46. @login_required
    47. def logout(request):
    48. auth.logout(request)
    49. return render(request,'login.html')
    50. from django.contrib.auth.models import User
    51. def register(request):
    52. if request.method=='POST':
    53. username = request.POST.get('username')
    54. password = request.POST.get('password')
    55. # User.objects.create(username=username,password=password)
    56. #创建普通用户
    57. User.objects.create_user(username=username,password=password)
    58. return render(request,'register.html')