一:新建modles名为loginModels.py
# -*- coding: utf-8 -*-from django.db import models'''===================================@Project:wisdomShop@Author:班婕妤@Date:10/3/2020 下午2:14@Company:深圳市智慧养老宝科技有限公司@Motto:心有猛虎,细嗅蔷薇@Python_Version:3.7.3@Django_Version:2.1.5======================================='''class Userinfo(models.Model): USER_TYPE = ( (1, '普通用户'), (2, 'VIP'), (3, 'SVIP') ) user_type = models.IntegerField(choices=USER_TYPE, blank=True, null=True) userName = models.CharField(max_length=10) userPwd = models.CharField(max_length=100) userTelphone = models.CharField(max_length=10) userAddress = models.CharField(max_length=10) userAge = models.CharField(max_length=4)class UserToken(models.Model): user = models.OneToOneField(Userinfo, on_delete=models.CASCADE) token = models.CharField(max_length=64)
二:执行迁移脚本命令migrate
python manage.py makemigrations zhylbwgpython manage.py migrate zhylbwg
三:新建views名为login.py
# -*- coding: utf-8 -*-'''===================================@Project:wisdomShop@Author:班婕妤@Date:5/3/2020 下午1:50@Company:深圳市智慧养老宝科技有限公司@Motto:心有猛虎,细嗅蔷薇@Python_Version:3.7.3@Django_Version:2.1.5======================================='''from django.shortcuts import render,HttpResponsefrom django.http import JsonResponseimport pandas as pdimport jsonfrom zhylbwg.models import loginModelsfrom zhylbwg.views import md5 # 导入自定义md5加密函数from zhylbwg.views import requestResult # 导入自定义的统一返回函数from rest_framework.views import APIViewfrom zhylbwg.util.MySchemaGenerator import DocParam# Create your views here.def login(request): if request.method == 'POST': # 获取请求头数据,请求以json的格式传输 loginInfor = request.body loginInformation = json.loads(loginInfor) # 获取用户名 userName = loginInformation.get('userName') # 判断该用户名是否存在 userNameDB = loginModels.Userinfo.objects.filter(userName=userName) print(userNameDB.values_list('userName')[0]) if len(userNameDB) == 0: return HttpResponse(json.dumps(requestResult.result_json('202', '该用户名不存在,请注册', '')), content_type="application/json,charset=utf-8") else: ''' 判断密码是否正确 ''' # 得到前端传过来的密码 userPwd = loginInformation.get('userPwd') # 使用mdb进行加密 userPwdMd5 = md5.Md5(userPwd) # 根据同用户名从数据库中获取密码 checkLogin = loginModels.Userinfo.objects.get(userName=userName) # 比较2个密码是否一致 if userPwdMd5 == checkLogin.userPwd: # 若一致,则登录成功 return HttpResponse(json.dumps(requestResult.result_json('203', '登录成功', '')), content_type="application/json,charset=utf-8") else: return HttpResponse(json.dumps(requestResult.result_json('504', '密码错误', '')), content_type="application/json,charset=utf-8")def register(request): # 判断是否为post请求 if request.method == "POST": # 获取请求头数据,请求以json的格式传输 registerinformation = request.body # 将请求头数据转化为json格式 registerinformationData = json.loads(registerinformation) print(registerinformationData) # 获取用户名 userName = registerinformationData.get('userName') # 从数据库中查找是否存在该用户名 userNameDB = loginModels.Userinfo.objects.filter(userName=userName) # 判断用户名是否存在,若存在,则提示已有该用户,若不存在,则进行密码加密后存储到数据库中 if userNameDB: return HttpResponse(json.dumps(requestResult.result_json('312', '该用户名已经存在', '')), content_type="application/json,charset=utf-8") else: # 获取用户密码 # userPwd = registerinformationData.get('userPwd') # 密码加密操作md5,md5加密功能具体看md5加密代码 userPwdMd5 = md5.Md5(userPwd) # 将加密后的密码赋值给请求头中的密码参数 registerinformationData["userPwd"] = userPwdMd5 # 将json格式数据,类型为dict 存储到数据库中,表明为Userinfo,将注册请求存储到数据库中 loginModels.Userinfo.objects.create(**registerinformationData) return HttpResponse(json.dumps(requestResult.result_json('201', '注册成功,请登录', '')), content_type="application/json,charset=utf-8") else: return HttpResponse(json.dumps(requestResult.result_json('501', '不是post请求', '')), content_type="application/json,charset=utf-8")
四:url映射
path('zhylbwg/register/', login.register),path('zhylbwg/login/', login.login),
五:测试

