Example #1
0
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")
Example #2
0
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")
Example #4
0
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")