- 首先呢,我们需要创建一个项目这是必须的,因前面已经介绍过了创建项目的过程,在这儿就不过多的去详解了 , 若想了解 点击:创建项目
第一需要在项目下手动创建一个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"
才能进行图片的传送