试图组织我的项目,我无法访问索引页面,例如,当我访问localhost:5000/
时,它正在调用posts/index
。我想打电话给/templates/index
,但找不到示例。
示例结构:
|--__init__.py
/views
|--posts.py
|--users.py
/templates
|_/posts
|--index.html
|--add.html
|_/users
|--index.html
|--add.html
|--index.html
初始化文件,我正在导入蓝图
from website.views import posts
from website.views import users
app.register_blueprint(posts.mod)
app.register_blueprint(users.mod)
views文件,调用路由。此示例为posts.py
。
mod = Blueprint('posts',__name__)
@mod.route('/')
def index():
return render_template('posts/index.html')
@mod.route('/add')
def add():
return render_template('posts/add.html')
@mod.route('/edit')
def edit():
return render_template('posts/edit.html')
答案 0 :(得分:0)
默认情况下,烧瓶需要呈现页面(html)时,它会查看templates
目录。
在您的情况下,您指定了posts/index.html
,这意味着它将被转换为templates/posts/index.html
。您只需要简单地表明您只想渲染index.html
,它就会自动引用templates/index.html
。
您可以例如使用
@mod.route('/')
def index():
return render_template('index.html')
不过,您可以在Rendering Templates
中找到更多详细信息答案 1 :(得分:0)
您可以在蓝图注册期间添加前缀。
from website.views import posts
app.register_blueprint(posts.mod, url_prefix='/posts')
# /
@app.route('/')
def index():
return render_template('index.html')
mod = Blueprint('posts',__name__)
# posts/
@mod.route('/')
def index():
return render_template('posts/index.html')
# posts/add
@mod.route('/add')
def add():
return render_template('posts/add.html')
# posts/edit
@mod.route('/edit')
def edit():
return render_template('posts/edit.html')
来源:http://flask.pocoo.org/docs/1.0/blueprints/#registering-blueprints