上传图片需要有静态文件,我们在setting中配置一下
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static') )
下一步
在项目中创建一个静态文件(我的命名为static) static下再建一个文件用来存储图片(我的命名为img)
views代码
# 导入静态文件
from 项目名.settings import STATICFILES_DIRS
def upload(request):
if request.method=="POST":
获取模板传来的值
image = request.FILES.get('image')
if image:
// 如果获取到值 拼接路径
path = os.path.join(STATICFILES_DIRS[0], "img/" + image.name)
// 写入图片
with open(path,'wb') as fp:
fp.write(image.read())
messages.warning(request,"成功上传")
return render(request,"upload.html",locals())
else:
// 如果没获取到图片信息 消息闪现一个失败
messages.warning(request,"上传图片失败")
return render(request,"upload.html",locals())
模板代码
enctype="multipart/form-data" 编码
<form method="POST" enctype="multipart/form-data">
上传图片 类型选file
选择图片:<input type="file" name="image" ><br>
<input type="submit" value="上传">
</form>
<head>
如果需要展示图片 将下面这条语句配置在head标签内
{% load staticfiles %}
<title>上传图片</title>
</head>
显示图片语句 style给图片设置宽高 path是视图函数中拼接好的路径
<img src="{% static path %}" style="width:400px;height:300px;">
效果如下