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)Ongwu博客 版权声明:以上内容未经允许不得转载!授权事宜或对内容有异议或投诉,请联系站长,将尽快回复您,谢谢合作!