在大型的 Flask 项目中,确实可能会有多个子应用(Blueprints),每个子应用可能都有自己的静态文件和模板。为了更好地管理和组织这些资源,可以使用static_folder
和template_folder
属性来统一管理。必须同时设置好主应用APP和蓝图子应用Blueprint中的路径属性。
当你在主应用中使用 Flask
初始化时,实际上是在告诉 Flask 主应用的静态文件和模板文件应该在哪里查找。这对于主应用本身是必需的,但如果项目中还包含多个 Blueprint,每个 Blueprint 也应该有自己的 static_folder
和 template_folder
,以避免资源冲突和混乱。
from flask import Flask
# 主应用的静态文件和模板文件夹
main_static_folder = 'path/to/main/static'
main_template_folder = 'path/to/main/templates'
app = Flask(
__name__,
static_folder=main_static_folder,
template_folder=main_template_folder
)
在创建 Blueprint 实例时,可以指定 static_folder
和 template_folder
参数,以告诉 Flask 这个 Blueprint 的静态文件和模板文件位于何处。
from flask import Blueprint
# 创建一个 Blueprint 对象,指定其静态文件和模板文件的路径
bp = Blueprint(
'my_blueprint',
__name__,
static_folder='path/to/static',
template_folder='path/to/templates'
)
集中管理的好处是更容易维护和管理所有的静态文件和模板,而且可以减少服务器上的文件夹数量和层级深度。