Django上传图片和展示图片

在jango中如果要实现图片上传到服务器和展示用户上传的图片需要配置不同的东西,接下来我们就详细说明一下

用户上传图片

  1. 需要在seting中配置:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')

然后创建media文件夹,后续用户上传的图片就保存在这个文件夹里
2. 浏览器中设置提交按钮

enctype=”multipart/form-data
在浏览器中post请求中需要用到该函数

"" method="post" enctype="multipart/form-data"> 上传图片:type="file" name="img">


  1. 设置数据库
    首先需要安装一个插件

pip install Pillow
需要说明的是:该插件看似没有被运用但是在ImageField中系统却需要用到

在models中添加一个列

models.ImageField(upload_to='upload',null=True)

说明的是upload是最后在media中创建的文件名字将用户图片保存在里面,数据库中写的是该图片的路径,但是没有包涵‘’media‘’路径
4. 保存到数据库
从浏览器中获取用户的图片

request.FILES.get('img')

然后create上传到服务器中

浏览器展示图片

首先在工程目录下的urls中导入
表示解析图片

from django.contrib.staticfiles.urls import static
from day5(工程目录名) import settings
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

在views中导出数据库的数据,传递到html中
然后在浏览器中解析展示出来

<img src="/media/{{ xxx(传入数据的名称).i_image }}">

你可能感兴趣的:(Django上传图片和展示图片)