文件的下载

from flask import send_from_directory

@excel_bp.route('/get_attachment/<path:filename>')
def get_attachment(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'],filename,as_attachment=True)

文件的上传

(1)html中

<input class="form-control" type="文件名" name="file" value="请上传excel文件">

(2)后端获取,保存

file = request.files.get('文件名') # 获取文件

filename = file.filename  # 获取文件名

file.save(os.path.join(FILE_DIR,filename)) # 保存文件

(3)当然 要对文件名,文件类型进行判断;存储路径也要进行判断

可以使用werkzeug中的 secure_filename

判断文件类型

ALLOWED_EXTENSIONS = ['xls', 'xlsx']

def allowe_file(filename):
'''
限制上传的文件格式
:param filename:
:return:
'''
return '.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS

修改文件名

import os
import datetime,uuid def change_filename(filename):
'''
修改文件名称
:param filename:
:return:
'''
fileinfo = os.path.splitext(filename)
filename = datetime.datetime.now().strftime("%Y%m%d%H%M%S")+str(uuid.uuid4().hex)+fileinfo[-1]
return filename

判断储存路径

if not os.path.exists(FILE_DIR):
os.makedirs(FILE_DIR)

python的excel操作

通过xlrd读文件

安装:pip install xlrd

通过 xlrd 打开excel,组装数据

import xlrd

def get_data(filename,method='r'):
'''
改变数据结构 -- 方便前端显示
:param filename: 文件名
:param method: 按照 列或者 行 返回数据
'''
data = xlrd.open_workbook(filename)
table= data.sheets()[0]
nrows = table.nrows # 行数
ncols = table.ncols # 列数
if method == 'r':
row_list = [ table.row_values(i) for i in range(0,nrows)] # 所有行的数据
return row_list
elif method == 'c':
col_list = [ table.col_values(i) for i in range(0,ncols)] # 所有列的数据
return col_list

前端显示

 < thead >
< tr >
             {% for title in datalist[0] %}
                < th >{ title }< / th >
             { % endfor % }
         < /tr >
< / thead >
< tbody >
         { % for row in datalist[1:] % }
             < tr >
{ % for item in row % }
<td>{ { item } }</td>
{ % endfor % }
< /tr >
        { % enfor % }
     < / tbody >
< / table >

通过xlwt写文件

flask 文件的上传下载和excel操作的更多相关文章

  1. 在Window的IIS中创建FTP的Site并用C#进行文件的上传下载

    文件传输协议 (FTP) 是一个标准协议,可用来通过 Internet 将文件从一台计算机移到另一台计算机. 这些文件存储在运行 FTP 服务器软件的服务器计算机上. 然后,远程计算机可以使用 FTP ...

  2. 创建FTP的Site并用C#进行文件的上传下载

    创建FTP的Site并用C#进行文件的上传下载 文件传输协议 (FTP) 是一个标准协议,可用来通过 Internet 将文件从一台计算机移到另一台计算机. 这些文件存储在运行 FTP 服务器软件的服 ...

  3. linux链接及文件互相上传下载

    若排版紊乱可查看我的个人博客原文地址 基本操作 本篇博客主要介绍如何去链接远程的linux主机及如何实现本地与远程主机之间文件的上传下载操作,下面的linux系统是CentOS6.6 链接远程linu ...

  4. Spring实现文件的上传下载

    背景:之前一直做的是数据库的增删改查工作,对于文件的上传下载比较排斥,今天研究了下具体的实现,发现其实是很简单.此处不仅要实现单文件的上传,还要实现多文件的上传. 单文件的下载知道了,多文件的下载呢? ...

  5. SocketIo+SpringMvc实现文件的上传下载

    SocketIo+SpringMvc实现文件的上传下载 socketIo不仅可以用来做聊天工具,也可以实现局域网(当然你如果有外网也可用外网)内实现文件的上传和下载,下面是代码的效果演示: GIT地址 ...

  6. JAVAWEB之文件的上传下载

    文件上传下载 文件上传: 本篇文章使用的文件上传的例子使用的都是原生技术,servelt+jdbc+fileupload插件,这也是笔者的习惯,当接触到某些从未接触过的东西时,总是喜欢用最原始的东西将 ...

  7. SSM框架之中如何进行文件的上传下载

    SSM框架的整合请看我之前的博客:http://www.cnblogs.com/1314wamm/p/6834266.html 现在我们先看如何编写文件的上传下载:你先看你的pom.xml中是否有文件 ...

  8. python使用ftplib模块实现FTP文件的上传下载

    python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def uplo ...

  9. php文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是实例的部分脚本文件 这里我先 ...

随机推荐

  1. 【Thinking in Java, 4e】控制流程执行

    p46~p75: [迭代] 1.Java不允许将数字作为布尔值用. 1.有点意思的小程序WhileTest. public class WhileTest { static boolean condi ...

  2. Activiti:创建activiti工程

    Activiti:创建activiti工程 一.Activiti下载: 1,Activiti下载地址:https://github.com/Activiti/Activiti/releases 2,A ...

  3. 基于Node.js的爬虫工具 – Node Crawler

    Node Crawler的目标是成为最好的node.js爬虫工具,目前已经停止维护. 我们来抓取光合新知博客tech栏目中的文章信息.访问http://dev.guanghe.tv/category/ ...

  4. Windows下如何安装python第三方库lxml

    lxml是个非常有用的python库,它可以灵活高效地解析xml,与BeautifulSoup.requests结合,是编写爬虫的标准姿势. 参考 Windows下如何安装python第三方库lxml ...

  5. Jquery8 基础事件

    学习要点: 1.绑定事件 2.简写事件 3.复合事件 JavaScript 有一个非常重要的功能,就是事件驱动.当页面完全加载后,用户通过鼠标或键盘触发页面中绑定事件的元素即可触发.jQuery 为开 ...

  6. COJS:1829. [Tyvj 1728]普通平衡树

    ★★★   输入文件:phs.in   输出文件:phs.out   简单对比 时间限制:1 s   内存限制:128 MB [题目描述] 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需 ...

  7. mybatis的sql映射文件—增删改查

    前提:需要的包log4j.jar,mybatis-3.4.1.jar,mysql-connector-java-5.1.37-bin.jar 1.基本类 员工类 package com.hand.my ...

  8. 解题报告:hdu2191汶川地震 - 多重背包模板

    2017-09-03 17:01:36 writer:pprp 这是一道多重背包裸题 - 记得是从右向左进行,还有几点需要注意啊,都在代码中表示出来了 代码如下: /* @theme:hdu2191 ...

  9. java高级特性(2)--循序渐进地培养面向对象的思维方式

    在我踏入软件行业后,一直苦于没有前辈指点.我常年困惑于两个问题:一是怎样培养面向对象设计的思维能力?二是怎样进行架构设计,有无方法? 因为我做了那么多年项目,却很少看到有漂亮的面向对象思维写出来的代码 ...

  10. 基于usb4java实现的java下的usb通信

    项目地址:点击打开 使用java开发的好处就是跨平台,基本上java的开发的程序在linux.mac.MS上都可以运行,对应这java的那句经典名言:一次编写,到处运行.这个项目里面有两种包选择,一个 ...