Flask当前目录

时间:2018-04-01 20:22:39

标签: python templates flask

我想从烧瓶应用中的任意位置轻松引用同一目录模板,例如:

.
├── app.py
├── src
│   └── thing
│       ├── __init__.py
│       ├── component.html
│       └── component.py
└── templates

通常情况下,我必须render_template引用templates目录并从那里开始,但这很痛苦。如何使用类似component.py之类的文件路径调用同一目录模板,例如

component.py

中的

return render_template(self.this_files_directory + "/component.html", data=data)

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以在实例化application object时重新配置默认模板目录:

from flask import Flask

app = Flask(__name__, template_folder='path/to/templates')

“Flasky”这样做的方法是使用Blueprints来匹配您的目录结构,因此在src/thing/__init__.py内:

from flask import Blueprint

bp = Blueprint('thing', __name__, template_folder='src/thing')

from . import component  # e.g. your views for the blueprint

然后,在app.py内导入并注册每个蓝图:

from flask import Flask

app = Flask(__name__)

from src import thing
app.register_blueprint(thing.bp, url_prefix="/thing")

另外,阅读本文可能非常值得:

http://flask.pocoo.org/docs/0.12/blueprints/#blueprints