自学内容网 自学内容网

Flask 静态文件处理

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 提供了灵活且强大的静态文件处理功能,满足不同应用场景的需求。


原文地址:https://blog.csdn.net/2301_80488214/article/details/140359491

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!