Django关于图片存储和读取问题
一般情况下,我们上传的图片会保存在 media 这个文件夹下面,在访问网页的时候我们就会读取其中的照片。今天就是来做这样一个例子:
1,在项目的目录下,新建media目录文件,配置setting.py
# 设置上传文件的路径
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media') #指定根目录
2,在model中配置上传的属性
image = model.ImageField("logo", upload_to='org/%Y/%m',max_length=100)
# 提示, 这里的意思是定义一个上传图片的属性,将文件的内容上传到org/%Y/%m 这个文件件下面,最大的文件名长度是100,%Y是当前的年份创建文件夹,%m是当前的月份创建文件夹
在后台打开就是这样的效果,所以还是建议将logo改成中文的标识符
3当前这只是前奏,还有以一系列步骤需要完成,接下来到setting.py 继续进行配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
# 添加这一行,可以理解为中间件的意思
'django.template.context_processors.media',
],
},
},
]
还没有完哟,有人肯定想,真麻烦,还有最后一步 url.py里面配置
# 处理图片显示的url,使用Django自带serve,传入参数告诉它去哪个路径找,我们有配置好的路径MEDIAROOT
re_path(r'^media/(?P<path>.*)', serve, {"document_root": MEDIA_ROOT}),
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)