关于django中图片的上传
发布日期:2021-05-15 04:58:45 浏览次数:21 分类:精选文章

本文共 1082 字,大约阅读时间需要 3 分钟。

Django图片存储优化指南

在django项目中处理图片上传和存储时,可以按照以下步骤进行操作,确保高效稳定地完成图片管理任务。

首先,确保已经配置好了图片存储文件夹。通过在settings.py中设置MEDIA_ROOT参数来定义图片存储的根目录:

from 项目名称.setting import MEDIA_ROOT

接下来,从前端请求中获取上传的文件信息:

filename = request.FILES.get('文件名', '')

处理文件扩展名,可通过以下方式获取:

suffix = Uploadfiles.name.split(".")[-1]

然后,获取文件路径并清除多个斜杠止其位置:

part_path = part_path.strip("/") + "/"

为图片生成一个唯一的名称以避免重复路径:

import uuid
name = uuid.uuid1()

然后,构建图片存储路径。将名称和扩展名结合在一起,以确保文件存储的唯一性和可读性:

picture_file_path = os.path.join(MEDIA_ROOT, part_path + "{0}.{1}".format(name, suffix))

注意:这里的os.path.join函数在跨平台操作中能正确处理路径问题。

使用 Pillow库处理图片文件。首先,用requested图片对象进行处理:

from PIL import Image
pic = Image.open(Uploadfiles)

获取图片的宽度和高度:

w, h = pic.size

进行缩略图压缩,可根据需要调整压缩率。此处以降低图片尺寸并保持图像质量为例:

pic.thumbnail((int(w / 1.1), int(h / 1.1)))

最后,将缩略图保存到指定路径:

pic.save(picture_file_path)

通过处理,可以得到完整的图片保存路径。此时,存储路径可能会包含如/media/2023/07//image-12345.jpg的结构。

为了便于前端调用,可以将路径截取到/media开头的位置:

index_media = picture_file_path.find('/media')
picture_file_path = picture_file_path[index_media:]

通过以上步骤,可以完成图片上传和存储的实现。接下来可以根据需要添加图片分类、附件类型、 Bảo mật等功能,以提升图片管理的灵活性和可用性。

上一篇:django中图片上传的格式校验及大小
下一篇:Linux下Notepad++安装及卸载

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年05月16日 22时15分20秒