flask学习笔记(三):文件浏览器+下载指定文件夹中的文件(包含子文件夹)

Flask项目中下载文件,中文文件名在IE浏览器下出现乱码情况解决方案 一、问题描述 Python的Flask项目,做上传下载时按照原文件名进行,偶尔会出现中文文件名,当执行下载时在IE中会出现乱码问题,下面是解决方案。 二、解决方案 from flask import make_response, send_from_directory from urllib.parse import quote # for python3 # from urllib i... 阅读详情

需求

利用flask开一个web-app,其功能是:在网页上罗列出一指定根文件夹中的文件或子文件夹。当用户点击文件链接后,可下载至本地;当用户点击子文件夹时,在网页上罗列出该子文件夹中的文件。
注意:这里的文件夹结构是已知的有限的。比如最多只有两级子目录。

此实例中的目录结构如下:在根目录root_dir下有一级子目录。目录结构图如下:

├─root_dir
│  │  file1.txt
│  │  file2.txt
│  │  file3.txt
│  │  GAN.docx
│  │  main.py
│  │  tmp.md
│  │
│  ├─sub_dir1
│  │      file4.txt
│  │      file5.txt
│  │      tmp.md
│  │
│  └─sub_dir2
│          file6.txt
│          file7.txt
│          tmp.md

实现

目前的实现思路是针对每一级子目录,分别创建一个url绑定函数,以及创建一个函数用于下载文件。比如sub_dir1_page()用于返回第一级子目录的文件列表,download_subdir1()用于返回第一级子目录中要下载的文件。
因为此实例是演示作用,只有一级子目录,因此只需要多写一个sub_dir1_page()和download_subdir1()即可。若是两级子目录,则要类似的再写一个sub_dir2_page()和download_subdir2()。若是N级子目录,则要多写N组对应的函数。可见这种方式是比较笨拙的。更灵活的方式见后续的实例。

代码如下:

from flask import Flask, send_from_directory
import os

app = Flas
Python番外篇:Flask框架实现一个文件共享服务器 hello,大家好,我是wangzirui32,今天来教大家如何使用Flask框架实现一个文件共享服务器。 开始学习吧! 学习目录1. 项目架构2. app.py编写3. HTML模板编写3.1 index.html3.2 upload.html3.3 download_error.html3.4 upload_ok.html4. 效果展示 1. 项目架构 项目结构如下: files文件夹下有三个测试文件,templates里准备了四个HTML模板。 2. app.py编写 代码奉上: from flas 阅读详情

相关推荐

Flask实现文件下载服务的优雅实现

通过这个简单而实用的例子,我们学会了如何在 Flask 中实现文件下载服务。这个功能在实际的 Web 应用中很常见,例如提供用户下载报告、文件等。Flask 提供了一种简单而灵活的方式来处理文件下载,通过这篇博客,你应该能够轻松地将这个功能集成到你的 Flask 项目中。

学无止境 1530

folderview:flask应用程序在其中显示文件夹,子文件夹和html报告

资料夹检视 flask应用程序以显示文件夹,子文件夹和文件。 安装 确保您有可用的python 3.x 创建虚拟环境[可选] 点安装-r requirements.txt 用法 在运行服务器之前,将app.py中的父目录更新为ppath =“ replace_me”,默认情况下将其设置为ppath =“ /”。 python app.py 转到 其他修改 要在自定义端口上运行它,请设置环境变量

用Arduino和8个舵机,从零搭建一台能走路的并联腿机器狗(附完整代码与3D模型)

本文详细介绍了如何用Arduino和8个舵机从零搭建一台能走路的并联腿机器狗,包括硬件准备、结构组装、电路系统搭建、运动算法实现和Arduino编程。通过完整的代码与3D模型,帮助创客深入理解机器人运动原理,实现稳健行走的8自由度机器狗。

weixin_30482383的博客 700

Ventoy引导自定义菜单配置详解:手把手教你用ventoy_grub.cfg启动硬盘里的Manjaro

本文详细解析了Ventoy引导自定义菜单配置方法,重点介绍如何通过ventoy_grub.cfg文件启动硬盘中的Manjaro系统。从Ventoy与GRUB2的协作原理到具体配置步骤,包括分区布局设计、关键参数解析及常见问题解决方案,帮助用户实现多系统引导的灵活管理。

weixin_28738165的博客 299

LVGL项目内存告急?试试把中文字库放到SD卡里(基于LvglFontTool V0.5)

本文详细介绍了在LVGL嵌入式项目中如何通过将中文字库存储到SD卡来优化内存使用。针对Flash资源有限的MCU,如STM32F103,提供了基于LvglFontTool V0.5的外部字库生成与动态加载方案,适用于多字号、多语言及OTA场景,显著减少固件体积并提升显示灵活性。

weixin_33726318的博客 456

深入解析AndroidManifest.xml与device_admin.xml:打造完美DeviceOwner应用配置

本文深入解析了Android企业级开发中DeviceOwner应用的核心配置文件AndroidManifest.xml与device_admin.xml。详细阐述了如何精准声明DeviceAdminReceiver、定义管理策略,并提供了通过ADB命令进行设置与验证的实战指南,帮助开发者构建权限完整、配置正确的设备所有者应用。

ice55的博客 679

基于CANoe的车载以太网测试

以太网测试 CANoe

Yafet 4546

fMRI独立成分分析方法(ICA)工具GIFT

详细介绍了进行fmri数据进行ICA分析的工具包GIFT的使用,和进行ICA分析的流程。

m0_58256026的博客 1万+

FairyGUI深度解析:Unity复杂UI开发的高效解决方案与性能优化

在Unity游戏和应用开发中,UI系统的性能与开发效率是核心挑战。原生UGUI的组件化模型在应对复杂、动态界面时,常面临Draw Call过高、层级管理臃肿的问题。其原理在于,每个UI元素对应一个GameObject,渲染合批受限于Transform层级与材质状态,易导致性能瓶颈。FairyGUI(FGUI)作为一种专业的第三方UI解决方案,其技术价值在于采用了截然不同的“舞台-显示对象”渲染模型。该模型通过内部轻量级对象管理与自主合批系统,实现了极高的运行时效率与Draw Call优化。在应用场景上,FG

weixin_31315567的博客 339

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南——原生“龙虾”OpenClaw快速部署、问题速查与避坑指南

至此,你已经完成了从选购服务器到配置AI大脑的全过程。无论是想在云上养一只7x24小时的“龙虾”,还是在本地体验AI Agent的魅力,上述指南都提供了明确的路径。下一步,就是接入飞书、钉钉或QQ,让你的OpenClaw真正开始“干活”赚钱了 [citation:6]。

冯·诺依曼 987

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: windowns下生成目录结构树形图
下一篇: flask学习笔记(四):利用render_template()渲染html
一从际发
博客等级 码龄12年 103粉丝 126原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值