2

templateHTMLとPythonコードを分離するために使用しています。テンプレートフォルダを作成します。このフォルダに、index.htmlを作成します。これが私のコードです:

template_dir = os.path.join(os.path.dirname(__file__),'templates')
jinja_environment = jinja2.Environment(autoescape=True, loader=jinja2.FileSystemLoader(template_dir))

def render(self, template, **params):
        t = jinja_environment.get_template(template)
        return t.render(params)

そして、render('index.html')の使用:成功しました。問題ありません。

しかし、サブフォルダー:templates / blogを作成し、このフォルダーにblog.htmlを作成します。上記のテンプレートをからに変更templatestemplates/blogます。これが私のコードです:

template_dir = os.path.join(os.path.dirname(__file__),'templates/blog')
jinja_environment = jinja2.Environment(autoescape=True, loader=jinja2.FileSystemLoader(template_dir))

しかし、render('blog.html')を使用すると、エラーが発生しました:TemplateNotFound: blog.html

私を助けてください。

ありがとう :)

4

1 に答える 1

3

jinja2環境にさらにフォルダーを追加できます。

jinja_environment = jinja2.Environment(
  loader=jinja2.FileSystemLoader(['templates', 'templates\blog'])
)
于 2012-07-09T07:42:40.723 に答える