Django文件导入实现方案

by:授客 QQ1033553122

开发环境

 

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/

Django 文件导入实现方案的更多相关文章

  1. 大型SQL文件导入mysql方案

    一. 场景 现有俩个体积较大的单表sql文件,一个为8G,一个为4G,要在一天内完整导入到阿里云的mysql中,需要同时蛮子时间和空间这俩种要求. 二. 思路 搜索了网上一堆的方案,总结了如下几个: ...

  2. django后台导入excel文件

    1.django 如何从后台上传excel中批量解析数据 要从django后台导入的excel中批量解析数据,举一个例子,我们向后抬批量导入svn历史数据数据格式 假设excel表中有4列,每列分别是 ...

  3. django css文件导入,模板继承

    今天写了一下模板继承 刚开始感觉还行,也挺简单的 当只有html的时候还是能继承到的,代码如下.首先在父html文件里加入 {% block content %} {% block extracss ...

  4. 数据库MySQL基本介绍安装使用及文件导入导出

    1.数据库(data base) 1.1 简述 把文件存储在一台电脑上(服务器),其他电脑用户可以通过账号密码登陆,通过网络去访问这台电脑上的文件,但是由于每个人的数据是不同的,所以你只能通过自己的账 ...

  5. django文件上传、图片验证码、抽屉数据库设计

    1.Django文件上传之Form方式 settings.py, ALLOWED_HOSTS = ['*'] INSTALLED_APPS = [ 'django.contrib.admin', 'd ...

  6. Django-静态文件导入/url命名及反向解析

    一.静态文件导入 js.css.img等都叫做静态文件,那么关于django中静态文件的配置,我们就需要在settings配置文件里面写上这写内容: # STATIC_URL = '/xxx/' #别 ...

  7. Django文件上传下载与富文本编辑框

    django文件上传下载 上传 配置settings.py # 设定文件的访问路径,如:访问http://127.0.0.1:8000/media/就可以获取文件 MEDIA_URL = '/medi ...

  8. 十万级百万级数据量的Excel文件导入并写入数据库

    一.需求分析 最近接到一个需求,导入十万级,甚至可能百万数据量的记录了车辆黑名单的Excel文件,借此机会分析下编码过程; 首先将这个需求拆解,发现有三个比较复杂的问题: 问题一:Excel文件导入后 ...

  9. Django文件夹

    Django文件 App文件夹 migrations文件 生成models创建表的翻译语句 telemplatetags文件夹 telemplatetags文件夹下的文件专门用来创建自定义标签.自定义 ...

  10. 图解JanusGraph系列 - 关于JanusGraph图数据批量快速导入的方案和想法(bulk load data)

    大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据库系列-文章总目录 源码分析相关可查看github(码文不易,求个sta ...

随机推荐

  1. Pandas学习之路【2】

    Pandas数据查询的5种方法: 数据准备: import pandas as pd path = 'C:\\Users\\zhang\\Desktop\\ant-learn-pandas-maste ...

  2. 利用docker 搭建File Browser 文件管理系统

    File Browser就是一个文件浏览器,因为linux并不方便桌面管理,所以Filebrowser就是帮助我们管理linux服务器上文件的程序,你可以称他为网盘程序,可以管理文件.可以分享文件,另 ...

  3. iOS技术管理思路

    iOS技术管理思路

  4. LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型

    LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型 1.环境安装 # 设置pip全局镜像 (加速下载) pip config set global.index-url https:/ ...

  5. 神经网络常见参数解释:epoch、batch、batch size、step、iteration

      本文介绍在机器学习.深度学习的神经网络模型中,epoch.batch.batch size.step与iteration等名词的具体含义.   epoch:表示将训练数据集中的所有样本都过一遍(且 ...

  6. 003. git标签

    git标签 标签用于记录详细修改内容,为后续使用提供帮助. 也方便快速的回滚. 每一次提交[commit]都可以打一个tag标签. 测试阶段标签规则: 以 0.01 0.02版本为主 正式上线标签规则 ...

  7. nginx001

    本文档版权归属:陈雷雷,仅限学习交流 QQ:370460470 blog:www.chenleilei.net Nginx服务实践 简述Nginx(nginx.org) Nginx (engine x ...

  8. Postman POST多个文件

    软件做的比较好用,

  9. containerd 源码分析:创建 container(一)

    0. 前言 Kubernetes:kubelet 源码分析之 pod 创建流程 介绍了 kubelet 创建 pod 的流程,containerd 源码分析:kubelet 和 containerd ...

  10. 执行nodejs 内置fs模块

        执行方式1:                 在 cmd 中 任意文件夹路径下输入 node 回车                 C:\Users\32991>node         ...