蓝图模板文件夹瓶不工作

时间:2017-11-05 18:21:53

标签: flask jinja2

This is project structure
├── run.py
└── test_blueprint
    ├── __init__.py
    ├── __init__.pyc
    ├── mainsite
    │   ├── controllers
    │   │   ├── controllers.py
    │   │   ├── controllers.pyc
    │   │   ├── __init__.py
    │   │   └── __init__.pyc
    │   ├── __init__.py
    │   ├── __init__.pyc
    │   ├── static
    │   │   ├── css
    │   │   │   ├── bootstrap.min.css
    │   │   │   └── signin.css
    │   │   └── js
    │   └── templates
    │       └── mainsite
    │           └── homepage.html
    ├── static
    │   ├── css
    │   │   ├── bootstrap.min.css
    │   │   └── signin.css
    │   └── js
    ├── templates
    │   └── mainsite
    │       └── index1.html
    └── usermanagement
        ├── controllers
        │   ├── controllers.py
        │   ├── controllers.pyc
        │   ├── __init__.py
        │   └── __init__.pyc
        ├── __init__.py
        ├── __init__.pyc
        ├── static
        └── templates

这里我有两个蓝色印刷品mainsite和用户管理。我已在test_blueprint文件夹下的文件 init .py中注册了这个文件夹,该文件夹是主文件夹(在blueprint_project文件夹下面有一个run.py)

test_blueprint下的

__ init__文件


    from flask import Flask
    app=Flask(__name__)
    from test_blueprint.mainsite.controllers.controllers import mod 
    from test_blueprint.usermanagement.controllers.controllers import mod 

    app.register_blueprint(mainsite.controllers.controllers.mod,url_prefix="/"  )
    app.register_blueprint(usermanagement.controllers.controllers.mod,url_prefix="/usermanagement")

现在发布我已经在每个蓝图文件夹下创建 init .py,其中我已经定义了蓝图和模板文件夹。但是,我没有从那里拿模板。它继续投掷错误模板未找到。所以,我在test_blueprint文件夹下创建了模板文件夹。它完美地从templates / mainsite文件夹中选择index.html。 另外,如果我提供/ home / user / flaskenv / blueprint_project / .... templates文件夹,这是我的模板在blueprint文件夹下的绝对路径。它工作正常。

不确定它的bug是不是烧瓶。我在youtube上看到了视频,并期望我的烧瓶项目表现相同。不幸的是它没有

https://www.youtube.com/watch?v=erz8IxI8or8&t=238s

这是我的controller.py/views.py文件,看起来像mainsite


    from flask import Blueprint,render_template,url_for


    mod=Blueprint('mainsite',__name__,static_folder='static',template_folder='templates')
    @mod.route("/")
    def home():
        return render_template('mainsite/homepage.html')


现在,如果我使用os.path.abspath在blueprint文件夹下找到模板文件夹,那么将该路径作为变量传递给template_folder并且它可以正常工作。

现在我对烧瓶文档的期望是,只需提及template_folder ='templates'就应该自动找到blueprint文件夹下的模板,否则它将完全违背目的。

任何帮助都会赞赏

1 个答案:

答案 0 :(得分:0)

我通过用唯一名称重命名html文件来解决