将烧瓶模板扩展到模块文件夹之外 [英] Extends a Flask template outside the Module Folder

查看:28
本文介绍了将烧瓶模板扩展到模块文件夹之外的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于某些原因,我无法扩展base.html模板。

我的应用结构

-app
|-- main
|     |-- __init__.py
|     |-- views.py
|-- templates
|     |-- main
|     |    |-home.html
|     |-- base.html

我的app/main/views.py

from flask import (
Blueprint,
render_template
)

main_blueprint = Blueprint('main', 
                          __name__, 
                          template_folder='../templates/main'
                          )


@main_blueprint.route('/')
def index():
    return render_template('index.html') 

我的应用程序/Templates/base.html

<html> ...
  {% block content %}
  {% endblock %}      
</html>

我的应用程序/Templates/main/index.html

{% extends 'base.html' %}
{% block content %}
    <h1>Testing</h1>
{% endblock %}

当我尝试运行该应用程序时,收到错误:

jinja2.exceptions.TemplateNotFound: base.html

您知道我做错了什么吗?

推荐答案

快速修复以使其正常工作:在创建应用程序实例时使用Flask(__name__, template_folder="../templates")

如果您没有显式传递flask应用程序的TEMPLATE_Folder,它将在同一目录中查找templates。在您的例子中,它在主文件夹下查找,而Flask找不到任何模板。对于构建flask应用程序代码,有一些很好的自以为是的方法。请对它们进行研究,并决定哪些适合您。

这篇关于将烧瓶模板扩展到模块文件夹之外的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆