多选数据的上传:
获取数据用到的是request.getlist(name)
HTML内容为
<form action="/check/" method="POST">
<p>篮球<input type="checkbox" name="favor" value="篮球"></p>
<p>足球 <input type="checkbox" name="favor" value="发的"></p>
<p>球 <input type="checkbox" name="favor" value="挂号"></p>
<input type="submit" value="提交">
</form>
url的内容为
path(r'check/',views.check)
views为:
def check(req):
if req.method == "GET":
return render(req,'checkword.html')
elif req.method == "POST":
v = req.POST.getlist('favor')
print(v)
return render(req,'checkword.html')
else:
return redirect('/order/')
与单数据的上传不同的是将get改为了getlist().
接下来为中要的文件上传:
文件上传from中应该添加:enctpy = "multipart/form-data"属性
在HTML中的文件应该添加
<form action="/check/" enctype="multipart/form-data" method="POST">
<p><input type="file" name="picture"></p>
</form>
在核心部分就是在views中:
文件的大小大多是比较大的所以要获取上传的文件应该用到的方法为:UploadedFile.chunks().
如果上传的文件足够大需要分块返回,此方法就是将文件分块返回不会出现丢失现象。执行方法为迭代执行
obj = req.FILES.get("picture")
import os
file_path = os.path.join("upload",obj.name) //字符串的拼接
f = open(file_path,mode="wb")
//将文件放入到upload的目录下
for item in obj.chunks():
f.write(item)
f.close()
UploadedFile.chunks()可以更好的提高上传速度