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}),
posted @   飞航之梦  阅读(461)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示