1. 用户信息表功能数据表
django的ORM实现如下
class user(models.Model):
UserId = models.CharField(max_length=20, verbose_name='用户id', primary_key=True)
UserName = models.CharField(max_length=20, verbose_name='用户名')
UserPwd = models.CharField(max_length=30, verbose_name='用户密码')
phone = models.CharField(max_length=20, verbose_name='用户的手机号密码')
CapitalPwd = models.CharField(max_length=20, verbose_name='资金密码')
address = models.CharField(max_length=50, null=True, default=None, verbose_name='用户地址')
SumBlance = models.DecimalField(default=0.0, verbose_name='用户总余额')
balance = models.DecimalField(default=0.0, verbose_name='用户当前余额')
BlankCe = models.DecimalField(default=0.0, verbose_name='可抢余额')
superiorID = models.CharField(max_length=20, verbose_name='用户上级id')
AnotherId = models.CharField(max_length=30, null=True, verbose_name='另一个appid')
InvitationCode = models.CharField(max_length=20, null=True, default=None, verbose_name='用户邀请码')
prices = models.CharField(null=True, max_length=50, verbose_name='临时存储')
pricesw = models.CharField(null=True, max_length=50, verbose_name='临时存储1')
prices1 = models.CharField(null=True, max_length=50, verbose_name='临时存储')
pricesw1 = models.CharField(null=True, max_length=50, verbose_name='临时存储1')
SumAnothers= models.FloatField(null=True,default=0.0, verbose_name='用户当日收益总和')
class Meta:
db_table = 'uneatable'
verbose_name = '用户信息表'
对Message表进行数据迁移
#进行数据迁移
python manage.py makemigrations
python manage.py migrate
并且在后台中对模型进行注册
class userUser(admin.ModelAdmin):
pass
admin.site.register(user, userUser)
2. 用户信息相关基本接口实现
2.1 用户登陆api接口功能实现
2.1.1 用户登陆api接口实现逻辑
- 从前端得打相关信息
- 进行数数据库中进行匹配
-
2.1.2 用户登陆api接口功能代码实现
在views中添加相关操作
def login(request):
username, password = request.POST.get('username'), request.POST.get('password')
user_list = user.objects.filter(phone=username, UserPwd=password)
if user_list:
data = user.objects.get(phone=username).UserId
else:
data = None
return JsonResponse(data, safe=False)
在urls中添加相关操作
path('login/', views.login, name='用户登陆'),
2.2 用户注册api接口功能实现
2.2.1 用户注册api接口实现逻辑
从前端得打相关信息
- 进行数数据库中进行匹配,确保相关内容的唯一性
- 返回查询信息,看是否满足注册条件
- 满足条件的话进行注册
-
2.2.2 用户注册api接口功能代码实现
在views中添加相关操作
def register(request):
Name = request.POST.get('name')
SmsCode = request.POST.get('smsCode')
Phone = request.POST.get('phone')
Pwd = request.POST.get('pwd')
Capitalpwd = request.POST.get('capitalpwd')
CapitalpwdTrue = request.POST.get('capitalpwdTrue')
Guided = request.POST.get('guided')
Code = request.POST.get('code')
# 手机号已经被注册,则不能再次注册了
for i in user.objects.all():
if i.phone == Phone:
data = {
'IsSucceed': IsNotSucceed,
'Reason': '手机号已经被注册,请更换手机号'
}
return JsonResponse(data, safe=False)
if SmsCode == Code:
if Capitalpwd == CapitalpwdTrue:
user_list = user.objects.filter(InvitationCode=Guided)
if user_list:
Sher = Users() # 用户id
supered = user.objects.get(InvitationCode=Guided).UserId # 上级id
user.objects.create(UserId=Sher, UserName=Name, phone=Phone, UserPwd=Pwd, CapitalPwd=Capitalpwd,
superiorID=supered, balance=0.0, BlankCe=0.0)
data = {
'IsSucceed': IsSucceed,
'Reason': TrueMessage
}
else:
# 邀请码错
data = {
'IsSucceed': IsNotSucceed,
'Reason': FalseInvitationCode
}
else:
# 两次输入密码不同
data = {
'IsSucceed': IsNotSucceed,
'Reason': NotSameMessage
}
else:
data = {
'IsSucceed': IsNotSucceed,
'Reason': NotSmsCode
}
return JsonResponse(data, safe=False)
在urls中添加相关操作
path('register/', views.register, name='用户注册'),
2.3 用户修改密码api接口功能实现
2.3.1 用户修改密码api接口实现逻辑
从前端得打相关信息
- 进行数数据库中进行匹配
- 返回查询信息,得到用户的个人信息
-
2.3.2 用户修改密码api接口功能代码实现
在views中添加相关操作
def ChangePwd(request):
UserId = request.POST.get('UserId')
password = request.POST.get('password')
NewPWD = request.POST.get('NewPWD')
NewPWDtrue = request.POST.get('NewPWDtrue')
if NewPWD == NewPWDtrue:
if user.objects.filter(UserId=UserId, UserPwd=password):
users = user.objects.get(UserId=UserId)
users.UserPwd = NewPWD
users.save()
data = {
'IsSucceed': IsSucceed,
'Reason': TrueMessage
}
else:
data = {
'IsSucceed': IsNotSucceed,
'Reason': FalseMessage
}
else:
data = {
'IsSucceed': IsNotSucceed,
'Reason': NotSameMessage
}
return JsonResponse(data, safe=False)
在urls中添加相关操作
path('ChangePwd/', views.ChangePwd, name='修改用户的登陆密码'),
2.4 用户短信接口api接口功能实现
2.4.1 用户短信api接口实现逻辑
从前端得打相关信息
- 得到用户手机的手机验证码
-
2.4.2 用户短信api接口功能代码实现
在views中添加相关操作
def shortMessage(request):
Phone = request.POST.get('Phone')
request.session['user'] = str(random.randint(0, 9)) + str(random.randint(0, 9)) + str(
random.randint(0, 9)) + str(random.randint(0, 9))
# input(request.session['user'], Phone)
data = {
'IsSuccess': IsSucceed,
'Code': request.session['user']
}
return JsonResponse(data, safe=False)
在urls中添加相关操作
path('shortMessage/', views.shortMessage, name='短信'),
2.5 用户个人信息api接口功能实现
2.5.1 用户个人信息api接口实现逻辑
从前端得打相关信息
- 进行数数据库中进行匹配
-
2.5.2 用户个人信息api接口功能代码实现
在views中添加相关操作
def mine(request):
UserId = request.POST.get('UserId')
if user.objects.filter(UserId=UserId):
users = user.objects.get(UserId=UserId)
data = {
'IsSucceed': True,
'Message': '用户存在',
'UserId': users.UserId,
'UserName': users.UserName,
'UserPwd': users.UserPwd,
'phone': users.phone,
'CapitalPwd': users.CapitalPwd,
'address': users.address,
'AnotherId': users.AnotherId,
'superiorID': users.superiorID,
}
else:
data = {
'IsSucceed': False,
'Message': '用户不存在',
'UserId': None,
'UserName': None,
'UserPwd': None,
'phone': None,
'CapitalPwd': None,
'address': None,
'AnotherId': None,
'superiorID': None,
}
return JsonResponse(data, safe=False)
在urls中添加相关操作
path('mine/', views.mine, name='用户个人信息'),
2.6 用户用户充值api接口功能实现
2.6.1 用户充值api接口实现逻辑
从前端得打相关信息
- 进行数数据库中进行匹配
- 返回查询信息,得到用户的个人信息
- 对数据相关字段进行修改
2.6.2 用户充值api接口功能代码实现
在views中添加相关操作
在urls中添加相关操作def Recharge(request):
UserId = request.POST.get('UserId')
Recharges = request.POST.get('Recharge')
if not all([UserId, Recharges]):
data = {
'IsSucceed': IsNotSucceed,
'Reason': NullMessage
}
else:
if user.objects.filter(UserId=UserId):
users = user.objects.get(UserId=UserId)
users.SumBlance += float(Recharges)
users.BlankCe = users.balance * OrderGrabbing()
users.save()
notes = detailed.objects.all()
notes.create(UserId=UserId, UserName=users.UserName, DetailedMoney=float(Recharges),
remarks=Rechargesw, detailedTime=datetimenow())
data = {
'IsSucceed': IsSucceed,
'Reason': TrueMessage
}
else:
data = {
'IsSucceed': IsNotSucceed,
'Reason': FalseMessage
}
return JsonResponse(data, safe=False)
path('Recharge/', views.Recharge, name='用户充值'),