Vue前后端页面下载功能实现演示,Python+flask提供后台下载服务

简介: Vue前后端页面下载功能实现演示,Python+flask提供后台下载服务

效果图


首先看下演示效果。

点文档的话是 html 文档,跳转的预览,点下载的话是压缩包直接就进行下载了。

c800c5bdd2b140de8f44aa785504473d.gif

文档和压缩包就是我本地文件。

fa3e9449f11b423f85c7ef8d2ea4d897.png


后台下载服务实现


后台这块,我这里使用 python+flask 实现。

root 指定个下载目录,后面的路径会在这个基础上进行查找。

# -*- coding:utf-8 -*-
import flask
import socket
app = flask.Flask(__name__)
@app.route('/downloads/<path:path>', methods=['GET', 'POST'])
def downloads(path):
    '''
     根据指定路径提供下载服务
    '''
    # 指定可供下载的大目录
    root = "D:\downloads"
    # as_attachment参数设置为False,会展示预览,例如图片或pdf
    return flask.send_from_directory(root, path, as_attachment=False)
if __name__ == '__main__':
    # 获取ip地址
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(('8.8.8.8',80))
    host_ip = s.getsockname()[0]
    s.close()
    host_port = 5003
    app.run(host = host_ip, port = host_port)

启动后就可以看到服务地址了。

这里有个 utf-8 的报错,可以不用管,就是计算机名是中文导致的。

想了解的话可以看这篇文章:

计算机中文名导致的 flask、socket 服务报错问题处理

169eef061f6d4e5584585a0c4f30300f.png

把 as_attachment 参数的值设置为 False 的话,

图片、pdf 等类型的文件就可以支持预览了,其它类型的文件还是直接进行下载。

为 True 的话,全部类型都是直接下载。

浏览器地址栏输入链接就可以看效果。

这个是预览效果。

f11027cdf45347dca838f05d853a9407.png

这个是直接下载效果。

image.png


前台简单实现


最简单的实现方法是用两个链接分别包含两个按钮即可。

如果想要做下载进度条的话,可以考虑用 axios、ajax 实现。

<a href="http://xxx:5003/downloads/sonar.html" target="_blank">
  <mdb-btn color="primary">文档</mdb-btn>
</a>
<a href="http://xxx:5003/downloads/sonar.zip">
  <mdb-btn color="primary">下载</mdb-btn>
</a>

然后就能实现这个效果啦。

如果喜欢这个 UE 效果的可以看我的这篇文章:

移动端也能兼容的 web 页面制作1MDBootstrap 演示 Demo 运行演示

image.gif

喜欢的点个赞❤吧!

目录
相关文章
|
4月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
291 101
|
4月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
239 99
|
4月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
209 98
|
4月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
6月前
|
Web App开发 安全 数据安全/隐私保护
利用Python+Requests实现抖音无水印视频下载
利用Python+Requests实现抖音无水印视频下载
|
4月前
|
存储 JavaScript 关系型数据库
基于python+vue的居家办公系统的设计与实现
本居家办公系统基于B/S架构,采用Python语言及Django框架开发,结合MySQL数据库和Vue.js前端技术,实现家具销售库存的科学化、规范化管理。系统旨在提升办公效率,降低数据错误率,优化信息管理流程,适应多行业信息化发展需求,具有良好的扩展性与实用性。
|
4月前
|
JavaScript 关系型数据库 MySQL
基于python+vue的贫困生资助系统
本文介绍了餐厅点餐系统的开发环境与核心技术,涵盖Python语言、MySQL数据库、Django框架及Vue.js前端技术,详细说明了各项技术的应用与优势,助力系统高效开发与稳定运行。
|
4月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
4月前
|
存储 关系型数据库 MySQL
基于python+vue的商城购物系统
本文介绍了电子商务的发展背景及研究现状,分析了当前电商市场的挑战与机遇,提出了自建电商平台的优势,旨在通过创新设计与技术实现(如Python、Django、B/S架构等),构建一个高效、低成本、用户导向的电商系统,以提升企业竞争力。
|
6月前
|
监控 编译器 Python
如何利用Python杀进程并保持驻留后台检测
本教程介绍如何使用Python编写进程监控与杀进程脚本,结合psutil库实现后台驻留、定时检测并强制终止指定进程。内容涵盖基础杀进程、多进程处理、自动退出机制、管理员权限启动及图形界面设计,并提供将脚本打包为exe的方法,适用于需持续清理顽固进程的场景。

推荐镜像

更多