Flask:在另一个文件夹中提供模板(除了'templates /'目录)

时间:2017-07-24 12:05:04

标签: python flask jinja2

我已将项目的sphinx文档生成到文档文件夹中。现在我想使用烧瓶服务器来提供服务。

这是我的项目结构。我想从文档文件夹中提供example.html。该文件夹还包含相关的CSS文件。

app/
    module1/
    module2/
    documentation/
        build/
            example.html
            styles.css
            ...
    templates/
        other_files.html
        ...

app_controller.py

@application.route("/doc", methods=["GET"])
@log_exceptions_to_github
def doc():
    return render_template('/build/index.html')

问题:

Flask仅在默认情况下在“templates”文件夹中查找HTML文件。

所以我无法为此服务。请注意,由于项目要求,从文档目录复制到模板目录不是我想要做的。

我想将“documentation”文件夹添加为模板目录以及默认目录。

我试过这个,但它不起作用:  https://stackoverflow.com/a/13598839/2286762

1 个答案:

答案 0 :(得分:1)

在Flask中查看有关how to organize templates的Flask文档。

那么为什么不简单地将documentation目录放在templates目录下,如下所示:

templates/
    index.html
    documentation/
        build/
            example.html
    other_directories/

然后只需致电return render_template('documentation/build/example.html')

如果您真的想保留您在代码示例中提出的结构,可以查看有关How to load from more then one template_folder for Flask blueprint?的问题。

在Flask文档中,您可以找到有关what is a blueprint的更多信息。