zoukankan      html  css  js  c++  java
  • python

    # 问题场景:对接第三方时遇到一个图片存储问题,对方给的是他们服务器的图片路径地址,但是 我这里存储图片用的是 ImageField  字段属性,也设置了存储路径,现在一旦将图片显示到前端就会将设置的存储路径前缀也带上。但是又不能改成  CharField 字段属性,所以为了不影响当前数据的情况下,需要将第三方的图片下载到自己的服务器内,并存储。(不知道有没有更好的方法,反正我找了半天没找到。。)

    # 这个转换可以相当于你提交表单时传的图片对象,可以直接存入django的 ImageField 

    def file_to_img(img_url):
        # 图片路径转换成 InMemoryUploadedFile
        picFrontImg = requests.get(img_url)
        hz1 = picFrontImg.request.url.split('.')[-1]
        f = BytesIO()
        img_content = picFrontImg.content  # 图片的二进制数据
        f.write(img_content)
        front_path = "{0}.{1}".format(timezone.now().strftime('%Y%m%d%H%M%S%f'), hz1)
        img_obj = InMemoryUploadedFile(f, None, front_path, None, len(img_content), None, None)
        return img_obj
    
    def get_shop(request, *args, **kwargs):
        shop_obj = Shop.objects.filter(id=1).first()
        if shop_obj:
            img_obj = file_to_img("http://xxx.png")
            shop_obj.front_img = img_obj    # 将图片数据存入 shop_obj 对象中
            shop_obj.save()
        
        """... 到此结束后续代码暂不演示..."""

    # 逐渐流失大概就是这个感觉吧。

  • 相关阅读:
    代码外的软技能——吉他自学过程
    利用栈实现括号匹配(python语言)
    django框架--登录注册功能(ajax)
    ajax的get请求
    docker 制作自己的镜像
    Mysql group by之 Error 1055
    ssh 远程连接
    python实现--九九乘法表
    mysql5.7安装和卸载过程
    javascript随机变色--案例
  • 原文地址:https://www.cnblogs.com/chaoqi/p/11705059.html
Copyright © 2011-2022 走看看