在Django中使用PIL保存图像时如何给出路径

Sus*_*usa 1 python django python-imaging-library

我在确定保存文件时要给出的路径定义时遇到麻烦-绝对系统路径或静态文件目录的相对路径

我最小化的照片模型-

 class Photos(models.Model):
  photo = models.ImageField(upload_to=get_photo_storage_path)
Run Code Online (Sandbox Code Playgroud)

我的缩略图模型-

 class PhotosThumbnails(models.Model):
        photo = models.ForeignKey(Photos)
        dp = models.ImageField(upload_to=get_thumbnail_storage_path)
Run Code Online (Sandbox Code Playgroud)

我的看法-

photo_thumbnail_obj = PhotosThumbnails(photo = photos_object)
size = 40, 40
im = Image.open(str(obj.photo.path))
im.thumbnail(size)
im.save( ?? , 'JPEG')
photo_thumbnail_obj.dp = ??
photo_thumbnail_obj.save()
Run Code Online (Sandbox Code Playgroud)

帮助Python人员,我想使用相对路径保存它。

Jor*_*dan 6

我总是使用绝对系统路径进行保存。

im.save('/var/www/_uploads/myphoto.jpg', 'JPEG')
Run Code Online (Sandbox Code Playgroud)

由于您使用的是Django,因此您可能还需要这样做:

im.save(settings.UPLOAD_DIRECTORY + 'myphoto.jpg', 'JPEG')
Run Code Online (Sandbox Code Playgroud)

  • 可能更好的方法是进行设置。UPLOAD_DIRECTORY+'myphoto.jpg',因此我们不进行硬编码。 (2认同)