上传图片
admin后台上传图片
1)在项目根目录下新建一个upload文件夹,将上传的图片统一的放到项目根目录下的upload文件夹下。
2)如何做到让上传的图片储存到这个新建的文件夹下,需要在setting 中配置
# 配置上传文件所在的目录 MEDIA_ROOT = os.path.join(BASE_DIR, 'upload') #(MEDIA_ROOT 这词是固定的)这样上传的图片就保存到 upload 下
在写模型类时
image = models.ImageField(upload_to="goods", verbose_name="商品图片") # upload_to="xxx" 放到upload文件夹下 xxx文
件夹下,这个xxx文件夹不用自己建,在上传图片时自动生成
注意当上传的是视频时,可以 models.filefield(upload="") 用法跟图片用法一样
生成迁移文件生成表后我们就可以在admin后台上传图片了。上传后mysql数据库的该字段就有值了,而且在upload文件夹下生成一个包含有新上传图片的goods文件夹。
上传完成后我们要在templates的静态页面显示出来。
# 配置访问上传文件目录的路径 MEDIA_URL = '/upload/'
from django.views.static import serve from jingtu.settings import MEDIA_ROOT
re_path(r'upload/(?P<path>.*)$',serve,{"document_root": MEDIA_ROOT }), # 为upload显示图片配一个一级路由
现在就可以在templates的html页面按照下面的写法去显示图片
注意这里 {{ book.bpic.url }} 也可以显示图片
当然也可以采用下面的方法显示图片,但还需一项配置(在settings的TEMPLATES模板中开启一个上下文渲染器)
这是在TEMPLATES写下红框中的内容

在html页面的form表单上传图片

浙公网安备 33010602011771号