我无法让Jinja2读取我的模板文件。
jinja2.exceptions.TemplateNotFound: template.html

env = Environment(loader=FileSystemLoader('frontdesk', 'templates'))
template = env.get_template('template.html')

我的树(我激活了venv @frontdesk)
.
├── classes.py
├── labels.txt
├── payments.py
├── templates
├── test.py
└── venv

最佳答案

您正在使用 FileSystemLoader class,它具有以下init参数:

class FileSystemLoader(BaseLoader):
    def __init__(self, searchpath, encoding='utf-8', followlinks=False):

您正在使用2个参数对其进行初始化:frontdesktemplates,这基本上没有多大意义,因为templates字符串将作为encoding参数值传递。如果要继续使用FileSystemLoader作为模板加载器,请按以下方式使用它:
from jinja2 import Environment, FileSystemLoader

env = Environment(loader=FileSystemLoader('frontdesk/templates'))
template = env.get_template('index.html')

或者,如果您打算使用 PackageLoader class:
from jinja2 import Environment, PackageLoader

env = Environment(loader=PackageLoader('frontdesk', 'templates'))
template = env.get_template('index.html')

在这种情况下,您需要确保frontdeskpackage-换句话说,请确保您在__init__.py目录中有frontdesk文件。

关于python-3.x - Jinja找不到模板路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35802741/

10-09 16:44