我学习了如何创建 Flask 蓝图,并且可以为使用 Jinja2 模板的非 Flask 产品创建蓝图并在 Flask 项目中使用它们。我做了这样的事情:
# blueprint code
from flask import Blueprint
from pkg_resources import resource_filename
app = Blueprint('formgear', __name__,
template_folder=resource_filename('formgear', 'templates'))
现在我想添加另一组模板,它在逻辑上与我的非 Flask 项目相关,但仅特定于 Flask。我完全不确定这是否是好的设计,但是有没有办法从一个蓝图传播两个模板文件夹?并使这两个模板集可用于整个 Flask 项目?
Note: formgear
是我的非 Flask 项目的名称。
这是调查的线索。
来自烧瓶.蓝图
class Blueprint(_PackageBoundObject):
....
def __init__(self, name, import_name, static_folder=None,
static_url_path=None, template_folder=None,
...)
_PackageBoundObject.__init__(self, import_name, template_folder)
....
来自 Flask.helpers
@locked_cached_property
def jinja_loader(self):
"""The Jinja loader for this package bound object.
.. versionadded:: 0.5
"""
if self.template_folder is not None:
return FileSystemLoader(os.path.join(self.root_path,
self.template_folder))
调查结果:
- template_folder 被传递到
Blueprints
随后去上课_PackageBoundObject
- 它被视为单个字符串而不是文件夹列表
Result:
- 您不能为 template_folder 传递多个路径
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)