django-文件上传

基本的文件上传流程

1.前端的代码
在这里插入图片描述

  • 前端代码说明:
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="myfile">
    <input type="submit" value="提交">
</form>
# 1.指定类型 enctype="multipart/form-data"
# 2.提交文件 <input type="file" name="myfile">
# 3.提交按钮: <input type="submit" value="提交">

2.后端代码

在这里插入图片描述
代码说明:

class IndexView(View):
    def get(self, request):
        return render(request, 'files.html')

    def post(self, request):
        myfile = request.FILES.get('myfile')
        with open('somefile.txt', 'wb') as f:
            for chunk in myfile.chunks():
                f.write(chunk)
        return HttpResponse('success')
  • 后端代码说明
 myfile = request.FILES.get('myfile')
 现在取得文件对象是用: request.FILES.get('文件类型的name')

chunks是文件句柄中的一个方法, 表示可迭代对象数据分流写入

使用模型类来处理上传的文件

0.settings的配置

# 文件上传
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')  # 文件存放目录
MEDIA_URL = '/media/'  # 访问的文件内容的url

MEDIA_URL 的配置 访问还要配置url路径
在这里插入图片描述

1.models模型类
在这里插入图片描述
模型代码说明:

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    files = models.FileField(upload_to='%Y/%m/%d')
 保存的字段:files = models.FileField(upload_to='%Y/%m/%d')
 参数:upload_to: 表示文件保存的名字

2.前端代码
在这里插入图片描述
3.视图
在这里插入图片描述

限制上传的文件扩展名

如果想要限制上传文件的扩展名, 需要使用表单类来进行限制 或者使用ModelFrom

1.模型类
在这里插入图片描述

2.forms表单类
在这里插入图片描述
3.视图
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值