как загрузить шаблоны jinja2 из заархивированной папки - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь загрузить шаблоны из заархивированной папки, но это не так. Структура папок: zipped.zip: templates / template1.html

Я попытался открыть файл с помощью модуля zipfile и передать дескриптор открытого файла в функцию get_template, как показано ниже

import os
from pathlib import path
import jinja2

TEMPLATE_DIR = os.path.abspath(str(Path.home()))
TEMPLATE_LOADER = jinja2.FileSystemLoader(searchpath=TEMPLATE_DIR)
TEMPLATE_ENV = jinja2.Environment(loader=TEMPLATE_LOADER)

archive = zipfile.ZipFile('zipped.zip', 'r')
hd_template = archive.open('templates/parsing_error_template.html')
parsed_template = TEMPLATE_ENV.get_template(hd_template)
html_template = parsed_template.render(a='something')

ОшибкаЯ получил:

parsed_template = TEMPLATE_ENV.get_template(parsed_template)
  File "/home/airflow/airflow/lib/python3.6/site-packages/jinja2/environment.py", line 830, in get_template
    return self._load_template(name, self.make_globals(globals))
  File "/home/airflow/airflow/lib/python3.6/site-packages/jinja2/environment.py", line 804, in _load_template
    template = self.loader.load(self, name, globals)
  File "/home/airflow/airflow/lib/python3.6/site-packages/jinja2/loaders.py", line 113, in load
    source, filename, uptodate = self.get_source(environment, name)
  File "/home/airflow/airflow/lib/python3.6/site-packages/jinja2/loaders.py", line 168, in get_source
    pieces = split_template_path(template)
  File "/home/airflow/airflow/lib/python3.6/site-packages/jinja2/loaders.py", line 27, in split_template_path
    for piece in template.split('/'):
AttributeError: 'ZipExtFile' object has no attribute 'split'

Как загрузить шаблон jinja2 из заархивированной папки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...