Flask:使用路径渲染模板

Flask:使用路径渲染模板,flask,Flask,我有几个不同的模板,我正试图使用我的烧瓶应用程序 我尝试了以下内容,但它似乎只直接查看/templates内部,而不是/templates/folder1、templates/folder2等 return render_template('index.html', template_folder='folder1') return render_template('folder1/index.html') 两者都不能按预期工作,如何指定不同模板的子文件夹。我认为肖恩是对的,但是:你试过双

我有几个不同的模板,我正试图使用我的烧瓶应用程序

我尝试了以下内容,但它似乎只直接查看/templates内部,而不是/templates/folder1、templates/folder2等

 return render_template('index.html', template_folder='folder1')
 return render_template('folder1/index.html')

两者都不能按预期工作,如何指定不同模板的子文件夹。

我认为肖恩是对的,但是:你试过双引号吗?我使用的是Blueprint,所以可能会有所不同,但这是我的:

return render_template("users/register.html")
所以你的可能是:

return render_template("folder1/index.html")

创建Flask应用程序(或蓝图)时可以指定模板文件夹:

资料来源:

资料来源:

template\u文件夹
与应用程序/蓝图所在的位置相关。 使用
os
库在app/blueprint目录外创建模板文件夹的路径

例如

import os
APP_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_PATH = os.path.join(APP_PATH, 'templates/')
  • 从应用程序根目录的子目录运行
  • 应用程序路径检索父目录路径(应用程序根目录)

确保Python文件和模板文件夹都位于同一工作目录文件夹下

第二个应该可以正常工作-您的目录结构是什么样子的?在templates文件夹中,我有包含index.html的
folder1
和包含index2.htmlSingle、double或triple引号的
folder2
。。。它们都是字符串,所以没有区别。:-)别介意我用index2.html而不是index.htmlh这个答案不正确,这个问题仍然需要一个有效的答案作为参考。这并不能回答这个问题单引号和双引号是一样的。
from flask import Blueprint
auth_blueprint = Blueprint('auth', __name__, template_folder='folder1')
import os
APP_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_PATH = os.path.join(APP_PATH, 'templates/')