jinja2 无法通过 wsgi 找到模板

问题描述 投票:0回答:0

我正在尝试将我的博客从 wordpress 转移到 flask,同时还保留一些功能,例如拥有一个包含多个论文标题和一些关于论文的片段的主页。

下面的代码显示了我试图循环一些选定的文章并创建每篇文章的标题和片段的字典以传递到主页。

@app.route('/', methods=['GET'])
def home():
    templateLoader = jinja2.FileSystemLoader(searchpath="templates")
    templateEnv = jinja2.Environment(loader=templateLoader)

    articles = {}
    essays = 'free', 'ree', 'ambition', 'ambition-3', 'eternity-infinity', 'theoretical-reality'
    for essay in essays:
        template = templateEnv.get_template(f"blog/{essay}.html")
        cont = template.new_context({'a': 'AAAAAAAA'})
        title = (concat(template.blocks['title'](cont))).replace('\n', '')
        snippet = (concat(template.blocks['snippet'](cont))).replace('\n', '')
        articles[essay] = {
        'title':title,
        'snippet':snippet
        }`

问题是这可以在我的本地机器上运行,并且当我使用

app.run(host='0.0.0.0')
运行时也可以通过网络运行,但是当我通过我的 wsgi 设置访问时。它清楚地抛出了
jinja2.exceptions.TemplateNotFound: blog/free.html
,它在找到第一篇文章的 html 文件时遇到了困难。

有趣的是,如果我直接进入论文页面free,它确实找到了它,但使用上面的代码时却找不到。

服务器设置为 Centos 7、Apache 和 mod_wsgi,virtualenv 运行 python3.6

python flask jinja2 mod-wsgi
© www.soinside.com 2019 - 2024. All rights reserved.