我试图渲染文件home.html。该文件存在于我的项目中,但我一直得到jinja2.exceptions。TemplateNotFound: home.html当我试图渲染它。为什么弗拉斯克找不到我的模板?
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
/myproject
app.py
home.html
如果必须使用自定义的项目目录结构(而不是公认的答案项目结构),
我们可以选择告诉flask在目录层次结构的适当级别中查找。
例如. .
app = Flask(__name__, template_folder='../templates')
app = Flask(__name__, template_folder='../templates', static_folder='../static')
从…开始/向后移动一个目录并从那里开始。
从../..开始/向后移动两个目录并从那里开始(依此类推…)。
在子目录中…
template_folder='templates/some_template'
我认为Flask默认使用目录模板。你的代码应该是这样的
假设这是你的hello.py
from flask import Flask,render_template
app=Flask(__name__,template_folder='template')
@app.route("/")
def home():
return render_template('home.html')
@app.route("/about/")
def about():
return render_template('about.html')
if __name__=="__main__":
app.run(debug=True)
你的工作空间结构就像
project/
hello.py
template/
home.html
about.html
static/
js/
main.js
css/
main.css
此外,您还创建了两个HTML文件,名称为home.html和about.html,并将这些文件放在模板文件夹中。
如果必须使用自定义的项目目录结构(而不是公认的答案项目结构),
我们可以选择告诉flask在目录层次结构的适当级别中查找。
例如. .
app = Flask(__name__, template_folder='../templates')
app = Flask(__name__, template_folder='../templates', static_folder='../static')
从…开始/向后移动一个目录并从那里开始。
从../..开始/向后移动两个目录并从那里开始(依此类推…)。
在子目录中…
template_folder='templates/some_template'