明月.jpg1. 用户信息表功能数据表

djangoORM实现如下

  1. class user(models.Model):
  2. UserId = models.CharField(max_length=20, verbose_name='用户id', primary_key=True)
  3. UserName = models.CharField(max_length=20, verbose_name='用户名')
  4. UserPwd = models.CharField(max_length=30, verbose_name='用户密码')
  5. phone = models.CharField(max_length=20, verbose_name='用户的手机号密码')
  6. CapitalPwd = models.CharField(max_length=20, verbose_name='资金密码')
  7. address = models.CharField(max_length=50, null=True, default=None, verbose_name='用户地址')
  8. SumBlance = models.DecimalField(default=0.0, verbose_name='用户总余额')
  9. balance = models.DecimalField(default=0.0, verbose_name='用户当前余额')
  10. BlankCe = models.DecimalField(default=0.0, verbose_name='可抢余额')
  11. superiorID = models.CharField(max_length=20, verbose_name='用户上级id')
  12. AnotherId = models.CharField(max_length=30, null=True, verbose_name='另一个appid')
  13. InvitationCode = models.CharField(max_length=20, null=True, default=None, verbose_name='用户邀请码')
  14. prices = models.CharField(null=True, max_length=50, verbose_name='临时存储')
  15. pricesw = models.CharField(null=True, max_length=50, verbose_name='临时存储1')
  16. prices1 = models.CharField(null=True, max_length=50, verbose_name='临时存储')
  17. pricesw1 = models.CharField(null=True, max_length=50, verbose_name='临时存储1')
  18. SumAnothers= models.FloatField(null=True,default=0.0, verbose_name='用户当日收益总和')
  19. class Meta:
  20. db_table = 'uneatable'
  21. verbose_name = '用户信息表'

对Message表进行数据迁移

  1. #进行数据迁移
  2. python manage.py makemigrations
  3. python manage.py migrate

并且在后台中对模型进行注册

  1. class userUser(admin.ModelAdmin):
  2. pass
  3. admin.site.register(user, userUser)

2. 用户信息相关基本接口实现

2.1 用户登陆api接口功能实现

2.1.1 用户登陆api接口实现逻辑

  • 从前端得打相关信息
  • 进行数数据库中进行匹配
  • 返回查询信息

    2.1.2 用户登陆api接口功能代码实现

    在views中添加相关操作

    1. def login(request):
    2. username, password = request.POST.get('username'), request.POST.get('password')
    3. user_list = user.objects.filter(phone=username, UserPwd=password)
    4. if user_list:
    5. data = user.objects.get(phone=username).UserId
    6. else:
    7. data = None
    8. return JsonResponse(data, safe=False)

    在urls中添加相关操作

    1. path('login/', views.login, name='用户登陆'),

    2.2 用户注册api接口功能实现

    2.2.1 用户注册api接口实现逻辑

  • 从前端得打相关信息

  • 进行数数据库中进行匹配,确保相关内容的唯一性
  • 返回查询信息,看是否满足注册条件
  • 满足条件的话进行注册
  • 不满足的话不进行注册

    2.2.2 用户注册api接口功能代码实现

    在views中添加相关操作

    1. def register(request):
    2. Name = request.POST.get('name')
    3. SmsCode = request.POST.get('smsCode')
    4. Phone = request.POST.get('phone')
    5. Pwd = request.POST.get('pwd')
    6. Capitalpwd = request.POST.get('capitalpwd')
    7. CapitalpwdTrue = request.POST.get('capitalpwdTrue')
    8. Guided = request.POST.get('guided')
    9. Code = request.POST.get('code')
    10. # 手机号已经被注册,则不能再次注册了
    11. for i in user.objects.all():
    12. if i.phone == Phone:
    13. data = {
    14. 'IsSucceed': IsNotSucceed,
    15. 'Reason': '手机号已经被注册,请更换手机号'
    16. }
    17. return JsonResponse(data, safe=False)
    18. if SmsCode == Code:
    19. if Capitalpwd == CapitalpwdTrue:
    20. user_list = user.objects.filter(InvitationCode=Guided)
    21. if user_list:
    22. Sher = Users() # 用户id
    23. supered = user.objects.get(InvitationCode=Guided).UserId # 上级id
    24. user.objects.create(UserId=Sher, UserName=Name, phone=Phone, UserPwd=Pwd, CapitalPwd=Capitalpwd,
    25. superiorID=supered, balance=0.0, BlankCe=0.0)
    26. data = {
    27. 'IsSucceed': IsSucceed,
    28. 'Reason': TrueMessage
    29. }
    30. else:
    31. # 邀请码错
    32. data = {
    33. 'IsSucceed': IsNotSucceed,
    34. 'Reason': FalseInvitationCode
    35. }
    36. else:
    37. # 两次输入密码不同
    38. data = {
    39. 'IsSucceed': IsNotSucceed,
    40. 'Reason': NotSameMessage
    41. }
    42. else:
    43. data = {
    44. 'IsSucceed': IsNotSucceed,
    45. 'Reason': NotSmsCode
    46. }
    47. return JsonResponse(data, safe=False)

    在urls中添加相关操作

    1. path('register/', views.register, name='用户注册'),

    2.3 用户修改密码api接口功能实现

    2.3.1 用户修改密码api接口实现逻辑

  • 从前端得打相关信息

  • 进行数数据库中进行匹配
  • 返回查询信息,得到用户的个人信息
  • 对数据相关字段进行修改

    2.3.2 用户修改密码api接口功能代码实现

    在views中添加相关操作

    1. def ChangePwd(request):
    2. UserId = request.POST.get('UserId')
    3. password = request.POST.get('password')
    4. NewPWD = request.POST.get('NewPWD')
    5. NewPWDtrue = request.POST.get('NewPWDtrue')
    6. if NewPWD == NewPWDtrue:
    7. if user.objects.filter(UserId=UserId, UserPwd=password):
    8. users = user.objects.get(UserId=UserId)
    9. users.UserPwd = NewPWD
    10. users.save()
    11. data = {
    12. 'IsSucceed': IsSucceed,
    13. 'Reason': TrueMessage
    14. }
    15. else:
    16. data = {
    17. 'IsSucceed': IsNotSucceed,
    18. 'Reason': FalseMessage
    19. }
    20. else:
    21. data = {
    22. 'IsSucceed': IsNotSucceed,
    23. 'Reason': NotSameMessage
    24. }
    25. return JsonResponse(data, safe=False)

    在urls中添加相关操作

    1. path('ChangePwd/', views.ChangePwd, name='修改用户的登陆密码'),

    2.4 用户短信接口api接口功能实现

    2.4.1 用户短信api接口实现逻辑

  • 从前端得打相关信息

  • 得到用户手机的手机验证码
  • 返回手机验证码

    2.4.2 用户短信api接口功能代码实现

    在views中添加相关操作

    1. def shortMessage(request):
    2. Phone = request.POST.get('Phone')
    3. request.session['user'] = str(random.randint(0, 9)) + str(random.randint(0, 9)) + str(
    4. random.randint(0, 9)) + str(random.randint(0, 9))
    5. # input(request.session['user'], Phone)
    6. data = {
    7. 'IsSuccess': IsSucceed,
    8. 'Code': request.session['user']
    9. }
    10. return JsonResponse(data, safe=False)

    在urls中添加相关操作

    1. path('shortMessage/', views.shortMessage, name='短信'),

    2.5 用户个人信息api接口功能实现

    2.5.1 用户个人信息api接口实现逻辑

  • 从前端得打相关信息

  • 进行数数据库中进行匹配
  • 返回查询信息

    2.5.2 用户个人信息api接口功能代码实现

    在views中添加相关操作

    1. def mine(request):
    2. UserId = request.POST.get('UserId')
    3. if user.objects.filter(UserId=UserId):
    4. users = user.objects.get(UserId=UserId)
    5. data = {
    6. 'IsSucceed': True,
    7. 'Message': '用户存在',
    8. 'UserId': users.UserId,
    9. 'UserName': users.UserName,
    10. 'UserPwd': users.UserPwd,
    11. 'phone': users.phone,
    12. 'CapitalPwd': users.CapitalPwd,
    13. 'address': users.address,
    14. 'AnotherId': users.AnotherId,
    15. 'superiorID': users.superiorID,
    16. }
    17. else:
    18. data = {
    19. 'IsSucceed': False,
    20. 'Message': '用户不存在',
    21. 'UserId': None,
    22. 'UserName': None,
    23. 'UserPwd': None,
    24. 'phone': None,
    25. 'CapitalPwd': None,
    26. 'address': None,
    27. 'AnotherId': None,
    28. 'superiorID': None,
    29. }
    30. return JsonResponse(data, safe=False)

    在urls中添加相关操作

    1. path('mine/', views.mine, name='用户个人信息'),

    2.6 用户用户充值api接口功能实现

    2.6.1 用户充值api接口实现逻辑

  • 从前端得打相关信息

  • 进行数数据库中进行匹配
  • 返回查询信息,得到用户的个人信息
  • 对数据相关字段进行修改

    2.6.2 用户充值api接口功能代码实现

    在views中添加相关操作
    1. def Recharge(request):
    2. UserId = request.POST.get('UserId')
    3. Recharges = request.POST.get('Recharge')
    4. if not all([UserId, Recharges]):
    5. data = {
    6. 'IsSucceed': IsNotSucceed,
    7. 'Reason': NullMessage
    8. }
    9. else:
    10. if user.objects.filter(UserId=UserId):
    11. users = user.objects.get(UserId=UserId)
    12. users.SumBlance += float(Recharges)
    13. users.BlankCe = users.balance * OrderGrabbing()
    14. users.save()
    15. notes = detailed.objects.all()
    16. notes.create(UserId=UserId, UserName=users.UserName, DetailedMoney=float(Recharges),
    17. remarks=Rechargesw, detailedTime=datetimenow())
    18. data = {
    19. 'IsSucceed': IsSucceed,
    20. 'Reason': TrueMessage
    21. }
    22. else:
    23. data = {
    24. 'IsSucceed': IsNotSucceed,
    25. 'Reason': FalseMessage
    26. }
    27. return JsonResponse(data, safe=False)
    在urls中添加相关操作
    1. path('Recharge/', views.Recharge, name='用户充值'),