Django上传图片

Django上传图片

settings.py 配置
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),   # 配置 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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值