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文件夹下的模板,否则它将完全违背目的。
任何帮助都会赞赏
答案 0 :(得分:0)
我通过用唯一名称重命名html文件来解决