Flask 静态文件处理

devtools/2024/9/20 1:26:13/ 标签: flask, python, 后端

1. 静态文件目录

Flask 默认会在应用的根目录下寻找一个名为 static 的文件夹,并将其作为静态文件的存储目录。你可以通过 static_folder 参数来指定不同的静态文件目录路径。

from flask import Flask app = Flask(__name__, static_folder='my_static')

2. 静态文件 URL 路径

默认情况下,静态文件可以通过 /static 路径访问。你可以通过 static_url_path 参数来更改这个路径。

app = Flask(__name__, static_url_path='/assets')

3. 发送静态文件

Flask 提供了 send_static_file 方法来发送静态文件。这个方法会自动注册一个路由来处理静态文件的请求。

@app.route('/static/<path:filename>') def static_files(filename): return app.send_static_file(filename)

4. 测试静态文件

在编写测试时,可以使用 Flask 提供的测试客户端来测试静态文件的访问。

def test_static_files(app, client): rv = client.get('/static/index.html') assert rv.status_code == 200 assert rv.data.strip() == b"<h1>Hello World!</h1>" rv.close()

5. 配置静态文件缓存

你可以通过 SEND_FILE_MAX_AGE_DEFAULT 配置项来设置静态文件的缓存时间。

app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 300 # 设置缓存时间为300秒

6. Blueprint 中的静态文件

在使用 Blueprint 时,也可以为每个 Blueprint 指定静态文件目录和 URL 路径。

from flask import Blueprint admin_bp = Blueprint('admin', __name__, static_folder='admin_static', static_url_path='/admin/static') @admin_bp.route('/static/<path:filename>') def admin_static_files(filename): return admin_bp.send_static_file(filename)

通过以上方式,Flask 提供了灵活且强大的静态文件处理功能,满足不同应用场景的需求。


http://www.ppmy.cn/devtools/59441.html

相关文章

图扑低代码数字孪生 Web SCADA 智慧钢厂

2024 年 4 月&#xff0c;中国钢铁工业协会发布了《钢铁行业数字化转型评估报告&#xff08;2023年&#xff09;》&#xff08;以下简称《报告》&#xff09;。《报告》指出&#xff0c;绝大部分钢铁企业建立了数字化转型相关管理组织和团队&#xff0c;并加强其规划落实&#…

LDAPWordlistHarvester:基于LDAP数据的字典生成工具

关于LDAPWordlistHarvester LDAPWordlistHarvester是一款功能强大的字典列表生成工具&#xff0c;该工具可以根据LDAP中的详细信息生成字典列表文件&#xff0c;广大研究人员随后可以利用生成的字典文件测试目标域账号的非随机密码安全性。 工具特征 1、支持根据LDAP中的详细信…

CentOS 7 网络配置

如想了解请查看 虚拟机安装CentOS7 第一步&#xff1a;查看虚拟机网络编辑器、查看NAT设置 &#xff08;子网ID&#xff0c;网关IP&#xff09; 第二步&#xff1a;配置VMnet8 IP与DNS 注意事项&#xff1a;子网掩码与默认网关与 第一步 保持一致 第三步&#xff1a;网络配置…

初学者指南:如何搭建和配置 Nginx 服务器

初学者指南&#xff1a;如何搭建和配置 Nginx 服务器 Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。本文将详细介绍如何在 Linux 上安装、配置和管理 Nginx 服务器。 一、安装 Nginx Nginx 可以安装在多种操作系统上&#x…

Window -- redis 服务注册、Mysql 服务注册

Windows 服务注册 cd 进入 Redis 主目录 cd /d F:\Redis-x64-5.0.14.1注册 Redis 为系统服务&#xff0c;并指定配置文件 redis-server --service-install redis.windows.conf --loglevel verbose开启服务 redis-server --service-start停止服务 redis-server --service-s…

关于HDFS 和HBase

Apache HBase 被设计为在 Hadoop 分布式文件系统 (HDFS) 上运行的一个特殊类型的数据库。大白话&#xff1a; 想象一下&#xff0c;你有一个巨大的图书馆&#xff0c;这个图书馆就像 HDFS&#xff0c;它的架子上堆满了各种各样的书籍&#xff0c;每本书都非常厚&#xff0c;而…

安防监控视频平台LntonCVS视频融合共享平台智慧消防实现远程集中视频监控方案

近年来&#xff0c;电力系统内变电站着火事件频发&#xff0c;这对消防安全管理提出了严峻挑战。我国消防安全基础设施不完善、管理机制不健全、应急处置能力不足及公众消防安全意识淡薄等问题&#xff0c;严重制约了消防安全的提升。因此&#xff0c;加强变电站的消防安全管理…

HashMap源码解析

目录 一:put方法流程 二&#xff1a;get方法 三&#xff1a;扩容机制 一&#xff1a;put方法流程 public V put(K key, V value) {return putVal(hash(key), key, value, false, true); }final V putVal(int hash, K key, V value, boolean onlyIfAbsent,boolean evict) {No…

Qcom平台通过Hexagon IDE 测试程序性能指导

Qcom平台通过Hexagon IDE 测试程序性能指导 1 安装Hexagon IDE工具2 测试工程2.1 打开Hexagon IDE2.2 新建工程2.3 添加测试案例2.3.1 方法一&#xff1a;新建2.3.2 方法二&#xff1a;拷贝 2.4 配置测试环境2.4.1 包含头文件2.4.2 添加程序优化功能(需先bulid一下)2.4.3 添加g…

79. UE5 RPG 创建技能冷却和消耗

在这一篇里面&#xff0c;我们接着优化技能&#xff0c;现在角色添加的主动技能能够同步到ui上面。我们在这一篇文章里面&#xff0c;完善技能的消耗&#xff08;释放技能减少蓝量&#xff09;和冷却机制。 我们可以看到&#xff0c;在技能类默认值这里&#xff0c;可以设置它的…

分类题解清单

目录 简介MySQL题一、聚合函数二、排序和分组三、高级查询和连接四、子查询五、高级字符串函数 / 正则表达式 / 子句 算法题一、双指针二、滑动窗口三、模拟四、贪心五、矩阵六、排序七、链表八、设计九、前缀和十、哈希表十一、字符串十二、二叉树十三、二分查找十四、回溯十五…

LabVIEW红外热波图像缺陷检

开发使用LabVIEW开发的红外热波图像缺陷检测系统。该系统结合红外热像仪、工业相机和高效的数据采集硬件&#xff0c;实现对工件表面缺陷的自动检测和分析。通过LabVIEW的强大功能&#xff0c;系统能够实时采集、处理和显示红外热波图像&#xff0c;有效提高了检测的精度和效率…

Windows 11预览补丁KB5040527影响火绒驱动加载的解决办法

7 月 11 日&#xff0c;微软更新Windows 11 预览版本补丁 KB5040527&#xff0c;补丁安装后会影响火绒驱动加载导致火绒安全软件服务异常&#xff0c;补丁相关信息如下&#xff1a; https://blogs.windows.com/windows-insider/2024/07/11/releasing-windows-11-builds-22621-…

如何在Java中处理空集合和空指针

文章目录 概要示例代码详细解释如下正确处理集合的技巧总结 概要 在Java开发中&#xff0c;我们经常需要处理集合&#xff08;如ArrayList&#xff09;的情况。为了确保程序的稳定性和正确性&#xff0c;我们必须妥善处理空集合和空指针。 示例代码 public class Main {publ…

大语言模型(Large Language Model, LLM)——初步详细了解!!!

LLM 1.1 **基本概念**1.2. **主要特点**1.3. **主要应用**1.4. **著名大语言模型**1.5. **挑战和局限**1.6. **未来发展**2.1. 文献综述与资料收集2.2. 数据分析与预处理2.3. 实验设计与优化2.4. 结果分析与解释2.5. 科研写作与报告6. 知识扩展与创新2.7. 具体工具与平台2.8 示…

装修设计行业全屋定制类小程序源码系统 带完整的安装代码包以及搭建部署教程

系统概述 装修设计行业全屋定制类小程序源码系统是基于现代技术栈开发的&#xff0c;专为装修设计行业量身定制。该系统采用了模块化架构设计&#xff0c;使得开发者能够根据需要灵活选择和组合功能模块&#xff0c;从而快速构建出符合自己业务需求的小程序。 该系统主要面向…

【Qt 常用控件】基础的常用控件(下)

文章目录 1. QDateTimeEdit1.1 日期计算器 2. QDial3. QSlider3.1 通过滑动条来控制窗口大小3.2 给滑动条添加快捷键使用 1. QDateTimeEdit 1.1 日期计算器 2. QDial 3. QSlider 3.1 通过滑动条来控制窗口大小 3.2 给滑动条添加快捷键使用

DevOps工具链整合:打造高效的自动化工作流

DevOps工具链整合&#xff1a;打造高效的自动化工作流 DevOps是一种软件开发和运维的协作方法&#xff0c;旨在通过自动化和协作来提高软件交付的速度和质量。为了实现DevOps&#xff0c;我们需要整合各种工具&#xff0c;形成一个高效的自动化工作流。在本篇文章中&#xff0…

苹果(IOS)开发证书/发布证书申请

苹果开发者官网地址&#xff1a; 登录账号 找到【账户】下面有【证书……】 申请证书请求 (.certSigningRequest) 文件 不管是申请开发 (Development) 证书还是发布 (Distribution) 证书&#xff0c;都需要使用证书请求 (.certSigningRequest) 文件&#xff0c;证书请求文件…

taro小程序terser-webpack-plugin插件不生效(vue2版本)

背景 最近在做公司内部的小程序脚手架&#xff0c;为了兼容老项目和旧项目&#xff0c;做了vue2taro,vue3taro两个模板&#xff0c;发现terser-webpack-plugin在vue2和vue3中的使用方式并不相同&#xff0c;同样的配置在vue3webpack5中生效&#xff0c;但是在vue2webpack4中就…