Django上传图片
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
上传图片视图函数
import os
from 主应用名称.settings import STATICFILES_DIRS
def add_computer(request):
if request.method == 'POST':
name = request.POST.get('name')
price = request.POST.get('price')
cate_id = request.POST.get('cate_id')
path = request.FILES.get('img_path')
if not all([name,price,size,cpu,cate_id,path]):
error = '输入框不能为空!'
return render(request,'add_computer.html',locals())
else:
cate = Cate.objects.filter(id=cate_id).first()
file_path = name + '.' + path.name.split('.')[-1]
file = 'img/' + file_path
with open(os.path.join(STATICFILES_DIRS[0],file),'wb') as fp:
fp.write(path.read())
Computer.objects.create(name=name,price=price,cate=cate,img_path=file)
return redirect('/')
cate = Cate.objects.all()
return render(request,'add_computer.html',locals())
上传图片页面
<form action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<label>电脑名称:</label><input type="text" name="name"><br><br>
<label>价格:</label><input type="text" name="price"><br><br>
<label>所属分类:</label>
<select name="cate_id">
{% for i in cate %}
<option value="{{i.id}}">{{i.name}}</option>
{% endfor %}
</select><br><br>
<label>电脑图片:</label><input type="file" name="img_path"><br><br>
{{error}}
<br>
<input type="submit" value="添加">
</form>