def register(request): # 判断是否为post请求 if request.method == "POST": # 获取请求头数据,请求以json的格式传输 registerinformation = request.body # 将请求头数据转化为json格式 registerinformationData = json.loads(registerinformation) # 获取用户名 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")
def image_upload(request): if request.method == 'POST': img = json.loads(request.body, encoding='utf-8') b64_data = img.get('product_pic') ''' 1:"data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwc JCQgKDBQNDAsLDBkSEw8UHRofH" 2:base64编码图片格式为上述样式,需要截取base64,号以后的内容 ''' baseImg = b64_data.split(';base64,')[1] ''' base64解码异常解决办法 在解码base64字符串的时候抛异常 TypeError: Incorrect padding ''' missing_padding = 4 - len(baseImg) % 4 if missing_padding: baseImg += '=' * missing_padding # base64格式解码 需要 import base64 base64Data = base64.b64decode(baseImg) # 获得当前工作目录 root = os.path.abspath(os.curdir) # 设置图片保存路径 urlPath = '\\zhylbwg\\templates\\img\\' # 按时间自动生成文件名称 imgName = str( datetime.datetime.now().strftime('%Y%m%d%H%M%S')) + '.jpg' # 图片保存全路径 imgUrl = root + urlPath + imgName # 打开文件 fp = open(imgUrl, 'wb') # 将解码后的base64写入文件中 fp.write(base64Data) ''' 将图片路径写入数据库中并保存 ''' img['product_pic'] = imgUrl # 外键处理 product_brand_id = img.get('product_brand_id') brandName = productInfo_models.BrandName.objects.filter( brand_name=product_brand_id)[0].id img['product_brand_id'] = productInfo_models.BrandName.objects.get( id=brandName) # 保存前端传入的数据 productInfo_models.ProductInfo.objects.create(**img) # 返回响应 return HttpResponse(json.dumps( requestResult.result_json('204', '图片上传成功', '')), content_type="application/json,charset=utf-8") else: return HttpResponse(json.dumps( requestResult.result_json('204', '图片上传失败', '')), content_type="application/json,charset=utf-8")
def add_product(request): productInformation = json.loads(request.body, encoding='utf-8') product_brand_id = productInformation.get('product_brand_id') brandName = productInfo_models.BrandName.objects.filter(brand_name=product_brand_id)[0].id productInformation['product_brand_id'] = productInfo_models.BrandName.objects.get(id=brandName) print(productInformation) if request.method == 'POST': productInfo_models.ProductInfo.objects.create(**productInformation) return HttpResponse(json.dumps(requestResult.result_json('204', '产品新增成功', '')), content_type="application/json,charset=utf-8")
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') userPwdMd5 = md5.Md5(userPwd) checkLogin = loginModels.Userinfo.objects.get(userName=userName) 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 query_product(request): productInformation = json.loads(request.body, encoding='utf-8') if request.method == 'POST': porductName = productInformation.get('product_name') ''' 1:在Django框架中,我们不能直接将QuerySet对象通过 HttpResponse(json.dumps(QeurySet))返回给前端Ajax.... 否则会报错:Object of type 'QuerySet' is not JSON serializable 2:因此需要序列号后才能返回给前端Ajax.... serializers.serialize("json",productInfo_models.ProductInfo.objects.filter(product_name=porductName)) jango.core import serializers ''' quere_result = serializers.serialize("json", productInfo_models.ProductInfo.objects.filter( product_name=porductName)) return HttpResponse(json.dumps(requestResult.result_json('205', '查询成功', quere_result)), content_type="application/json,charset=utf-8")
def add_brand(request): brandInformation = json.loads(request.body, encoding='utf-8') if request.method == 'POST': productInfo_models.BrandName.objects.create(**brandInformation) return HttpResponse(json.dumps(requestResult.result_json('204', '品牌新增成功', '')), content_type="application/json,charset=utf-8")