gpt4 book ai didi

python - 从 request.get 在 Django 中保存图像

转载 作者:行者123 更新时间:2023-12-03 21:38:11 26 4
gpt4 key购买 nike

因此,我尝试使用 request.get 从网络中提取图像并将其保存到 django 数据库中。这是一些代码如下以及我尝试过的步骤:

我的模型(只是需要的一点,不是全部)

class Pistol(models.Model):
gun_id = models.CharField(max_length=255)
manufacturer = models.CharField(max_length=255, blank=True)
model = models.CharField(max_length=255, blank=True)
image = models.ImageField(upload_to='img/inventory', blank=True)

我的代码(我是从 shell 执行此操作,因此它可能看起来有点无组织)
import request

r = requests.get('http://media.server.theshootingwarehouse.com/small/2451.jpg')
item = Pistol(gun_id="1", price=400, image="1.jpg")
item.image.save('1.jpg',r.content)

然后我收到以下错误
AttributeError: 'bytes' object has no attribute 'read' 

注意我在 python3 工作.

最佳答案

对于 python3,我创建了一个管理命令,希望它可以帮助你

import requests
from django.core.files.base import ContentFile
from django.core.management.base import BaseCommand, CommandError
from app.models import MyModel


class Command(BaseCommand):
help = 'save images to MyModel table'


def handle(self, *args, **options):
for model in MyModel.objects.all():
url = 'url_path_to_image'
r = requests.get(url)
if r.status_code == 200:
data = r.content
filename = url.split('/')[-1]
model.image.save(filename, ContentFile(data))
model.save()
print(model.pk)
self.stdout.write(self.style.SUCCESS('Successfully saved MyModel images'))

关于python - 从 request.get 在 Django 中保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32508406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com