Django实现微信小程序九宫格切图后端(第九周学习记录)

第九周学习记录

上周第八周确实没有发布我的学习记录,因为服务器的原因项目也一直延迟,好在周日老师的服务器批下来,小伙伴也开始了快乐windows服务器配置,我自然也不能闲着,这周开始赶进度

一、小程序的js口

原来的那个集成后的小程序一直处于微信头像上传不了的情况,其他的功能请求都很完善了,这个问题还在解决,因该是两个小程序的合并出现冲突,如果大家有好的方法欢迎指出

在这里插入图片描述

二、新项目:九宫格切图

这个项目说新也不是最新的,因为之前基础的原因一直搁置了,现在才捡起来,功能就是前端传一张完整的一张图片,后台处理图片并将图片切为九张,然后返回前端,通过js处理一下显示到wxml界面上,技术上的工作在经历了证件照的工作后就十分简单了

在这里插入图片描述

我在这定义了一个app,意思就是剪切图片,通过访问/cut/cut_image可以通过POST请求调用函数,具体的函数方法我在第一篇博客也指出了
https://blog.csdn.net/weixin_43951163/article/details/107928486
唯一不同的是,需要base64转码,返回http响应

def cut_main(request):
    if request.method == 'POST':  # 发送请求的格式
        image = request.FILES['image']  # 数据请求的名字
        open_id = request.POST.get('openid')  # 获取小程序发送过来的opid

        global basedir
        basedir = os.path.dirname(os.path.dirname(__file__))  # APP1目录
        path_old = basedir + '/cut_image/temp/'  # 原图片静态存储路径
        content = path_old  # 处理后的存储路径
        # print(centent)

        with open(content + open_id + '.jpg', 'wb') as f:  # 保存小程序传输过来的图片
            f.write(image.read())
            f.close()
            # 加入图片转换代码
        file_path = os.path.join(content, open_id + '.jpg')
        print(file_path)

        # 分别调用处理函数
        image = Image.open(file_path)

        image = fill_image(image)

        image_list = cut_image(image)

        DIR_NAME = os.path.dirname(os.path.abspath(__file__))
        # 保存图片
        save_images(DIR_NAME, image_list)

        res_dir = os.path.join(DIR_NAME, 'result')

        # 创建长度为9的数组
        pic_base = [1,2,3,4,5,6,7,8,9]

        # base64转码
        for index in range(0,9):
            new_name = os.path.join(res_dir, str(index+1) + '.png')
            print(new_name)
            img_im = cv2.imread(new_name, 1)  # 要把处理完的图片转码成base64返回
            receive_base = base64.b64encode(cv2.imencode('.png', img_im)[1]).decode()  # 把转换的编码赋值
            pic_base[index] = receive_base
            #每处理一张就删除
            os.remove(new_name)
            print(pic_base[index])  # 打印图片的base码的字母

        #删除原图片
        del_path = path_old + open_id +'.jpg'
        print(del_path)
        os.remove(del_path)

        return HttpResponse(pic_base)

这样在执行一个请求后文件不会出现任何变化,当然,这里我没有使用服务器部署,日后会进一步改进

在这里插入图片描述

小程序前端会受到类似这样的代码

三、上传服务器

这里我先上传到我自己的centos7的服务器上,具体的windows高配置服务器我的另外一个伙伴会更新

上传自己服务器还是按照之前博客所说,可以参考我以前的文档
https://blog.csdn.net/weixin_43951163/article/details/108395176
或者https://www.django.cn/article/show-30.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值