Как сохранить изображения по определенному пути, когда изображение передается по ссылке или 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)

это, но он сохраняет в базовый каталог, а мне нужно сохранить в заданный путь.

Ссылка на изображение дается из этого интерфейса: enter image description here

Даже если параметр в 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)
Вернуться на верх