python 详解如何写flask文件下载接口

简述

写一个简单的flask文件下载接口。

依赖

flask、gevent

代码

不废话上代码。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Oct 23 19:53:18 2021
@author: huyi
"""

from flask import Flask, request, make_response, send_from_directory
from gevent.pywsgi import WSGIServer
from gevent import monkey

# 将python标准的io方法,都替换成gevent中的同名方法,遇到io阻塞gevent自动进行协程切换
monkey.patch_all()
app = Flask(__name__)

@app.route("/download", methods=['GET'])
def download_file():
    get_data = request.args.to_dict()
    file_path = get_data.get('fileName')

    response = make_response(
        send_from_directory('/Users/huyi/Movies/Videos',file_path,as_attachment=True))
    response.headers["Content-Disposition"] = "attachment; filename={}".format(
        file_path.encode().decode('latin-1'))
    return response

if __name__ == '__main__':
    WSGIServer(('0.0.0.0', 8080), app).serve_forever()

准备数据:

浏览器输入:http://localhost:8080/download?fileName=test.mp4

下载完成。

总结

没啥好总结的。

如果本文对你有帮助,请点个赞支持一下吧。

到此这篇关于python 详解如何写flask文件下载接口的文章就介绍到这了,更多相关python flask下载内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python的Flask框架及Nginx实现静态文件访问限制功能

    Nginx配置 Ngnix,一个高性能的web服务器,毫无疑问它是当下的宠儿.卓越的性能,灵活可扩展,在服务器领域里攻城拔寨,征战天下. 静态文件对于大多数website是不可或缺的一部分.使用Nginx来处理静态文件也是常见的方式.然而,一些静态文件,我们并不像任何情况下都公开给任何用户.例如一些提供给用户下载的文件,一些用户上传的涉及用户隐私的图片等.我们我希望用户登录的情况下可以访问,未登录的用户则不可见. 粗略的处理,在后端程序可以做过滤,渲染页面的时候,在视图逻辑里面验证用户登录,然后

  • 在python的WEB框架Flask中使用多个配置文件的解决方法

    有些框架本身就支持多配置文件,例如Ruby On Rails,nodejs下的expressjs.python下的Flask虽然本身支持配置文件管理, 但单纯使用from_object和from_envvar却不是那么方便.有没有更好的办法? 答案是Flask-Environments这个包.它能通过FLASK_ENV环境变量自动选择开发环境配置或生产环境配置.使用之前要先安装: 复制代码 代码如下: $ sudo pip install Flask-Environments 然后修改confi

  • python3 flask实现文件上传功能

    本文实例为大家分享了python3-flask文件上传操作的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- import os import uuid import platform from flask import Flask,request,redirect,url_for from werkzeug.utils import secure_filename if platform.system() == "Windows": slash =

  • Python使用Flask框架同时上传多个文件的方法

    本文实例讲述了Python使用Flask框架同时上传多个文件的方法,分享给大家供大家参考.具体如下: 下面的演示代码带有详细的html页面和python代码 import os # We'll render HTML templates and access data sent by POST # using the request object from flask. Redirect and url_for # will be used to redirect the user once t

  • python2.7的flask框架之引用js&css等静态文件的实现方法

    动态 web 应用也会需要静态文件,通常是 CSS 和 JavaScript 文件.理想状况下, 我们已经配置好 Web 服务器来提供静态文件,但是在开发中,Flask 也可以做到. 只要在我们的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问.我们要给静态文件生成 URL ,需要使用特殊的 'static' 端点名: url_for('static', filename='style.css') 这个css文件应该存储在文件系统上的 stat

  • python flask中静态文件的管理方法

    Web应用中大多会提供静态文件服务以便给用户更好的访问体验. 静态文件主要包含CSS样式文件,js脚本,图片和字体等. Flask也支持静态文件访问的,默认情况下只需在项目根目录下,创建名为static的目录,在应用中使用'/static'开头的路径就可以访问了.但是为了获得更好的处理能力,推荐使用Nginx 或者其他服务器管理静态文件. 不要直接在模板中写死静态文件路径,应该使用url_for生成路径. 例如: url_for('static',filename='style.css') 生成

  • python 详解如何写flask文件下载接口

    简述 写一个简单的flask文件下载接口. 依赖 flask.gevent 代码 不废话上代码. #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Sat Oct 23 19:53:18 2021 @author: huyi """ from flask import Flask, request, make_response, send_from_directory fr

  • 详解Java是如何通过接口来创建代理并进行http请求

    场景 现在想要做这么一个事情,公司的dubbo服务都是内网的,但是提供了一个对外的出口,通过链接就能请求到对应的dubbo服务.(具体怎么做的应该就是个网关,然后将http请求转为dubbo请求,通过泛化调用去进行调用.代码看不到.)现在为了方便测试,我需要将配置的接口,通过http请求去请求对应的链接. 分析 项目的思想其实跟mybatis-spring整合包的思想差不多,都是生成代理去执行接口方法. https://www.jb51.net/article/153378.htm 项目是个简单

  • python 详解如何使用GPU大幅提高效率

    cupy我觉得可以理解为cuda for numpy,安装方式pip install cupy,假设 import numpy as np import cupy as cp 那么对于np.XXX一般可以直接替代为cp.XXX. 其实numpy已经够快了,毕竟是C写的,每次运行的时候都会尽其所能地调用系统资源.为了验证这一点,我们可以用矩阵乘法来测试一下:在形式上通过多线程并发.多进程并行以及单线程的方式,来比较一下numpy的速度和对资源的调度情况,代码为 # th_pr_array.py f

  • Python 详解爬取并统计CSDN全站热榜标题关键词词频流程

    前言 最近在出差,发现住的宾馆居然有小强.所以出差无聊之际,写了点爬虫的代码玩玩,问就是应景.本篇文章主要是爬取CSDN全站综合热榜的100个标题,然后分词提取关键词,统计一下词频. 我想了下,对于其他博主还是有用的,可以看看什么标题可以上热榜,就分享一下吧.顺便把我解决各类问题的方法,说一说. 环境 使用的IDE为:spyder(有看着界面不习惯的,忍一下,不关键) 页面爬取使用chromedriver,至于原因我后面会说. 分词器:jieba 爬取页面地址:https://blog.csdn

  • Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程

    目录 前言 环境部署 插件推荐 爬虫目标 项目创建 webdriver部署 项目代码 Item定义 中间件定义 定义爬虫 pipeline输出结果文本 配置文件改动 验证结果 总结 前言 闲来无聊,写了一个爬虫程序获取百度疫情数据.申明一下,研究而已.而且页面应该会进程做反爬处理,可能需要调整对应xpath. Github仓库地址:代码仓库 本文主要使用的是scrapy框架. 环境部署 主要简单推荐一下 插件推荐 这里先推荐一个Google Chrome的扩展插件xpath helper,可以验

  • 基于python详解PyScript到底是什么

    目录 前言: 作用 使用方法 总结 前言: 最近 Anaconda 开大会发布了 PyScript ,它允许我们将 Python 代码嵌入到 HTML 中,并在浏览器中允许.PyScript 旨在为用户提供一流的编程语言,该语言具有一致的样式规则.更具表现力且更易于学习. 熟悉前端的朋友应该马上就可以反应到:这就是替代 JavaScript 啊! 确实,这个功能就类似于 JavaScript,如果后面发展得好的话,我们完全可以不写 JavaScript,直接写 Python 也能实现一样的效果.

  • 详解JavaSE中抽象类与接口的定义及使用

    目录 一.抽象类 1.抽象类定义 2.抽象方法 二.接口 1.接口定义 2.类实现接口 3.接口与多态联合 4.extends和implements 5.接口在开发当中的作用 6.is has like 7.抽象类与接口 一.抽象类 1.抽象类定义 1.什么是抽象类? 类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类. 类到对象是实例化,对象到类是抽象. 抽象类无法实例化,无法创建对象.抽象类是类和类之间有共同特征,将这些具有共同特征的类再进一步抽象,就形成了抽象类.由于类本身是

  • Python详解复杂CSV文件处理方法

    目录 项目简介 项目笔记与心得 1.分批处理与多进程及多线程加速 2.优化算法提高效率 总结 项目简介 鉴于项目保密的需要,不便透露太多项目的信息,因此,简单介绍一下项目存在的难点: 海量数据:项目是对CSV文件中的数据进行处理,而特点是数据量大...真的大!!!拿到的第一个CSV示例文件是110多万行(小CASE),而第二个文件就到了4500万行,等到第三个文件......好吧,一直没见到第三个完整示例文件,因为太大了,据说是第二个示例文件的40多倍,大概二十亿行...... 业务逻辑复杂:项

  • Python详解如何动态给对象增加属性和方法

    Python对象动态的增加属性和方法 前面我们了解到数据封装.继承和多态只是面向对象程序设计中最基础的3个概念. 在Python中,面向对象还有很多高级特性,允许我们写出非常强大的功能. python是动态语⾔,动态编程语⾔是⾼级程序设计语⾔的⼀个类别,在计算机科学领域已被⼴泛应⽤.它是⼀类在 运⾏时可以改变其结构 的语⾔ :例如新的函数.对象.甚⾄代码可以被引进,已有的函数可以被删除或是其他结构上的变化. 动态语⾔⽬前⾮常具有活⼒,例如,我们现在创建一个人的类,在这个类里面,定义了两个初始属性

  • Python 详解基本语法_函数_返回值

    Python 详解基本语法 概要: 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作.可以说是函数的返回值令函数与函数之间,函数与主程序之间更加紧密的联系起来. 函数的返回值 在Python的函数中都有一个返回值,默认为None.也可以使用return value语句来定义一个且只能定义一个可为任意类型的返回值.但是我们能够返回一个序列类型的对象,来实现返回多个值的效果. Example: 返回一个Lis

随机推荐