个人整理-Django文件上传

Django中文件上传我大概分为6步

  1. 首先写好子路由(前提是环境已布置好,python版本:3.6.9 ,django版本:1.11.7)
url(r'^djwj/',views.djwj,name='djwj')

还要在settings中设置

MEDIA_ROOT=os.path.join(BASE_DIR,'static/icon')
  1. 添加模型
class Djwj (models.Model):
    d_name = models.CharField(max_length=32)
    d_icon = models.ImageField(upload_to='icons')

    class Meta:
        db_table = 'djwj'
  1. 安装pillow
    pip install pillow
    因为字段‘ImageField’依赖于‘pillow’ 所以一定要检查Django中是否已安装pillow

  2. 在templates中创建html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>文件上传</h1>
<form action="{% url 'zx1:djwj' %}" method="post" enctype="multipart/form-data">
    <input type="file" name="icon">
    <button>提交</button>
</form>
</body>
</html>
  1. 然后创建函数djwj
    当请求方式为GET则返回页面
    当请求方式为POST则执行文件上传
def djwj(request):
    if request.method=='GET':
        return render(request,'djwj/djwj.html')
    elif request.method=='POST':
        icon=request.FILES.get('icon')
        djwj=Djwj()
        djwj.d_name='abc'
        djwj.d_icon=icon
        djwj.save()
        return HttpResponse('上传成功')
  1. 最后实例化对象即可(最终文件的保存位置就是MEDIA_ROOT与upload_to的拼接)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值