gpt4 book ai didi

python - 如何从多个 template_folder 加载 Flask 蓝图?

转载 作者:太空狗 更新时间:2023-10-29 21:06:04 26 4
gpt4 key购买 nike

我学会了如何创建 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 项目?

注意:formgear 是我的非 Flask 项目的名称。

最佳答案

这是调查的线索。

来自 flask.blueprints

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))

调查结果:

  1. 传递给 Blueprints 的 template_folder 随后是类 _PackageBoundObject
  2. 它被视为单个字符串而不是文件夹列表

结果:

  1. 不能为 template_folder 传递多个路径

关于python - 如何从多个 template_folder 加载 Flask 蓝图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11192796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com