赞
踩
第一需要在项目下手动创建一个static 的文件目录,然后我们在setting.py 中 配置一个路径 用来保存 图片:
!表示项目根路径下的static文件夹下的upload文件夹
UPLOADFILES_DIRS = os.path.join(BASE_DIR, ‘static/upload’)
第二 在views.py中 创建一个类视图 用来读取从form表单中传过来图片 对它进行保存 及入库操作:
导入我们需要用的包
from django.shortcuts import render
//创建项目时自带的包
from django.views import View
//我们创建类视图所需要的包
import os
//拼接地址所需要的包
from django.conf import settings
//以及在我们需要settings中我们创建的路径 所以把 settings.py页导过来
from datetime import datetime
创建类视图
class UploadView(View): def get(self, request): ''''渲染模板''' return render(request, 'upload.html') def post (self, request): ''''获取数据进行逻辑处理''' img = request.FILES.get('img') #通过 FILES.get 获取 图片形式数据 #判断参数是否齐全 if not img: return render(request, 'upload.html',{'error':'参数不全'}) #对文件名进行拼接防止加入静态文件夹时 出现重名的情况 这李我用添加时的当前时间进行 一个动态的拼接 fix =datetime.now().strftime('%Y%m%d%H%M%S%f') + '1' ***上传图片*** #对 我们settings中已经配置好的路径 把文件的名称进行存入 img_path = os.path.join(settings.UPLOADFILES_DIRS, fix + img.name) f = open(img_path, 'wb') for i in img.chunks(): f.write(i) f.close() # 入库操作 goods_cate.images = '/static/images/' + fix + img.name goods_cate.save() return render(request, 'add_goods.html',{'error':'分类添加成功'})
这里呢我们有一个注意点
在from 表单中传送 图片类型的 input框type类型需要写入 file文件类
传送时 form 中就不单单是 POST 提交方式, 还必须有:
enctype="multipart/form-data"
才能进行图片的传送
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。