gpt4 book ai didi

python - Google App Engine Jinja2 模板从父文件夹扩展基本模板

转载 作者:太空狗 更新时间:2023-10-30 00:28:07 24 4
gpt4 key购买 nike

我正在使用带有 Python/Jinja2 的 Google App Engine

我有一些 html 内容文件,例如 content1.html、content2.html 和 content3.html。他们每个人都需要扩展一个名为 base.html 的基本 html 文件。

假设这 4 个文件在 some 文件夹中,那么在内容文件的开头,我只需要放入 {% extends "base.html"%},html 文件就可以很好地呈现。

但是,随着我的项目的增长,创建的页面越来越多。我想通过创建子文件夹来组织文件。所以现在假设在根目录中,我有 base.html 和 subfolder1。在子文件夹 1 中,我有 content1.html。

在我的 python 中:

JINJA_ENVIRONMENT = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(os.path.dirname(__file__))+"\\subfolder1"))
template = JINJA_ENVIRONMENT.get_template("content1.html")
template.render({})

JINJA_ENVIRONMENT = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(os.path.dirname(__file__))))
template = JINJA_ENVIRONMENT.get_template("subfolder1\\content1.html")
template.render({})

但随后在 content1.html 中,

{% extends "????????" %}

要扩展父文件夹中的 base.html,问号中应该加什么?

最佳答案

更清楚:

from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))

文件夹 templates 现在是模板的根目录:

template = env.get_template('content.html') # /templates/content.html
self.response.write(template.render())

或使用子文件夹:

template = env.get_template('folder/content.html')
self.response.write(template.render())

在 content.html 中:

{% extends "base.html" %}        # /templates/base.html
{% extends "folder/base.html" %} # /templates/folder/base.html

关于python - Google App Engine Jinja2 模板从父文件夹扩展基本模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20956429/

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