Как загрузить из нескольких папок шаблонов для Flask blueprint?

Я научился создавать чертежи Колб и могу создавать чертежи для продуктов без колб, которые используют шаблоны Jinja2 и используют их внутри проектов колб. Я делаю что-то вроде этого:

# blueprint code
from flask import Blueprint
from pkg_resources import resource_filename
app = Blueprint('formgear', __name__, 
                template_folder=resource_filename('formgear', 'templates'))

и теперь я хочу добавить еще один набор шаблонов, который логически связан с моим проектом без колбы, но только для колбы. Я совершенно не уверен, что это хороший дизайн, но есть ли способ распространить обе папки шаблонов из одного чертежа? И сделать оба шаблона set доступный для всего проекта склянки?

Примечание: formgear - это имя моего проекта без колбы.

1 ответов


вот след расследований.

из фляжки.чертежи

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

из фляжки.помощники!--5-->

@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. template_folder, который передается в Blueprints впоследствии в класс _PackageBoundObject
  2. это трактуется как одна строка, а не как список папок

результат:

  1. вы не можете пройти несколько путей для template_folder