views.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. # -*-coding:utf-8 -*-
  2. import json
  3. import time
  4. from django.shortcuts import render
  5. from django.http import HttpResponse
  6. from django.core.serializers.json import DjangoJSONEncoder
  7. from django.contrib.auth.hashers import make_password, check_password
  8. from django.views.decorators.csrf import csrf_exempt
  9. from models import *
  10. def JsonResponse(data):
  11. response = HttpResponse(json.dumps(data, cls=DjangoJSONEncoder),
  12. content_type="application/json")
  13. response['Access-Control-Allow-Origin'] = '*'
  14. return response
  15. def params(func):
  16. def _wrapper(*args, **kargs):
  17. request = args[0]
  18. if request.method == "GET":
  19. request.PARAMS = request.GET
  20. elif request.method == "POST" or request.method == "DELETE":
  21. if request.META.get('CONTENT_TYPE') == "application/json":
  22. request.PARAMS = json.loads(request.body) if request.body else {}
  23. else:
  24. request.PARAMS = request.POST
  25. elif request.method == "OPTIONS":
  26. return JsonResponse({"code": 0, "msg": "success"})
  27. else:
  28. request.PARAMS = {}
  29. return func(*args, **kargs)
  30. return _wrapper
  31. def user_manage(request):
  32. user = request.session.get("user", None)
  33. @csrf_exempt
  34. @params
  35. def signup(request):
  36. """
  37. 用户注册
  38. :param request:
  39. :return: user
  40. """
  41. req_params = request.PARAMS
  42. if req_params:
  43. try:
  44. username = req_params.get("username")
  45. password = make_password(req_params.get("password"), None,
  46. "pbkdf2_sha256")
  47. status = req_params.get("status")
  48. permission = req_params.get("permission")
  49. print(username,password,status,permission)
  50. obj, created = Users.objects.get_or_create(username=username)
  51. if not created:
  52. return JsonResponse({"code": -1, "msg": u"该用户名已被注册"})
  53. else:
  54. # 保存其他信息
  55. obj.username = username
  56. obj.password = password
  57. obj.status = status
  58. obj.permission = permission
  59. obj.signup_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
  60. obj.save()
  61. return JsonResponse({"code": 0, "msg": u"注册成功"})
  62. except:
  63. traceback.print_exc()
  64. else:
  65. return JsonResponse({"code": -1, "msg": u"缺少参数"})
  66. @csrf_exempt
  67. @params
  68. def login(request):
  69. """
  70. 用户登录
  71. :param request: username, password
  72. :return: True / False
  73. """
  74. data = request.PARAMS
  75. username = data.get("username", None)
  76. passwd = data.get("password", None)
  77. if not data:
  78. return JsonResponse({"code": -1, "msg": u"参数不完整"})
  79. # 获取user的password
  80. try:
  81. user = Users.objects.get(username=username)
  82. except ObjectDoesNotExist:
  83. return JsonResponse({"code": -1, "msg": u"该用户不存在"})
  84. # 检查密码是否正确
  85. check_res = check_password(passwd, user.password)
  86. print("***********")
  87. print(passwd)
  88. print(user.password)
  89. print(check_res)
  90. if check_res:
  91. user_info = {"uid": user.id, "username": user.username,
  92. "status": user.status, "permission": user.permission,}
  93. request.session["user"] = user_info
  94. res = {"code": 0, "msg": "success", "user": user_info}
  95. else:
  96. res = {"code": -1, "msg": "password wrong!"}
  97. print "set session: --> ", request.session.get("user", None)
  98. return JsonResponse(res)