Как сохранить изображения по определенному пути, когда изображение передается по ссылке или url, в python
Я пытаюсь сохранить изображения, которые даны по ссылке, таким образом, что изображение сохраняется по заданному пути и имя файла изображения создается с uuid
как показано ниже:
моя модель профиля:
class Profile(DataTimeModel):
first_name = models.CharField(max_length=100)
middle_name = models.CharField(max_length=100, null=True, blank=True)
last_name = models.CharField(max_length=100)
email_address = models.CharField(max_length=100)
phone_number = models.CharField(max_length=100)
address = models.CharField(max_length = 255, null=True, blank=True)
citizenship_no = models.CharField(max_length = 25, null=True, blank=True)
created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
Теперь, когда профиль будет зарегистрирован, я отправлю несколько ссылок на изображения или одну, по этим ссылкам я должен загрузить изображение и сохранить его в файл по следующему пути:
root_dir = MEDIA_ROOT+'/profile/'
new_dir = str(profile.id)
file_name = str(uuid.uuid4())+'.jpeg'
path = os.path.join(root_dir, new_dir)
os.makedirs(path)
Теперь мне нужно сохранить изображение, полученное по URL, в папке path
с именем file_name
с расширением. Как я могу это сделать?
Я пытаюсь использовать
urllib.request.urlretrieve(url, file_name)
это, но он сохраняет в базовый каталог, а мне нужно сохранить в заданный путь.
Ссылка на изображение дается из этого интерфейса:
Даже если параметр в urlretrieve называется filename
, на самом деле вы можете передать путь к файлу :
Просто объедините ваши path
и file_name
:
path = os.path.join(root_dir, new_dir)
os.makedirs(path)
file_name = str(uuid.uuid4())+'.jpeg'
file_path = os.path.join(path, file_name)
urllib.request.urlretrieve(url, file_path)