前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django 文件导入实现方案

Django 文件导入实现方案

作者头像
授客
发布2020-09-01 11:33:26
9660
发布2020-09-01 11:33:26
举报
文章被收录于专栏:授客的专栏授客的专栏

Django 文件导入实现方案

by:授客 QQ:1033553122

开发环境

Win 10

Python 3.5.4

Django-2.0.13.tar.gz

官方下载地址:

https://www.djangoproject.com/download/2.0.13/tarball/

vue 2.5.2

djangorestframework-3.9.4

下载地址:

https://github.com/encode/django-rest-framework

实现思路

1、 上传文件

2、 获取上传的文件,本地打开文件,解析数据,处理

view核心代码

def post(self, request, format=None): result = {} try: request.upload_handlers = [TemporaryFileUploadHandler()] files = request.FILES file = files.get('file') if not file: result['msg'] = '上传失败,未获取到文件' result['success'] = False return Response(result, status.HTTP_400_BAD_REQUEST) temp_file_path = file.temporary_file_path() temp_result = {'msg':'导入成功', 'success':True, 'status_code':status.HTTP_200_OK} return Response(result, status_code) except Exception as e: result['msg'] = '%s' % e result['success'] = False return Response(result, status.HTTP_500_INTERNAL_SERVER_ERROR)

说明:

1、关于更多文件上传相关资料,参考文档“Django 实现文件上传下载API.docx”

2、TemporaryUploadedFile和InMemoryUploadedFile都是UploadedFile的子类,除了拥有父类的方法之外,TemporaryUploadedFile还拥有以下方法:

TemporaryUploadedFile.temporary_file_path(),该函数返回被上传文件的全路径,可以通过该方法获取上传的文件。

InMemoryUploadedFile,则表示上传后被加载到内存的文件

内置上传处理器

MemoryFileUploadHandler和TemporaryFileUploadHandler类为django提供了默认的上传处理行为:被上传的小文件加载到内存,大文件保存到磁盘。两者位于 django.core.files.uploadhandler

如上,可以在运行中更改上传处理器:可以通过修改request.upload_handlers,为每个请求重新定义上传处理器。如果想要完全替换上传处理器,你可以为upload_handlers赋值一个新的列表:

request.upload_handlers = [TemporaryFileUploadHandler ()]

以此类推,如果只是想增加一个处理器,并且最优先执行该处理器,我们可以利用list的insert方法,把处理器插入列表中即可,形如 request.upload_handlers.insert(index, YourUploadHandler(request))

注意:只可以在访问request.POST或者request.FILES之前修改上传处理器,否则可能报错。

参考链接

https://docs.djangoproject.com/zh-hans/2.0/ref/files/uploads/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开发环境
  • 实现思路
  • view核心代码
  • 参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档