我正在构建一个小型flask应用程序,并且希望在我的项目中使用模块化结构。
在Django中,我可以只编写两个单独的文件夹,并使用它们自己的urls.py
,在我的settings.py
中注册它们,并在基础urls.py
中创建到它们的路由。
如何在烧瓶中实现这种模块化? 最好使用尽可能少的代码。
如果没有扩展就可以轻松完成所有这些操作,则奖励积分。
答案 0 :(得分:0)
您正在寻找blueprints。
app.py
blueprints/
sample_blueprint.py
another_blueprint.py
蓝图就像应用程序,而不是应用程序。 (非常la脚的解释,但让我向您展示一些代码)
# sample_blueprint.py
from flask import Blueprint
# just like `app = Flask(__name__)`
SAMPLE_BLUEPRINT = Blueprint('sample_blueprint', __name__)
# just like `@app.route('/sample')`
@SAMPLE_BLUEPRINT.route('/sample')
def sample():
return 'Sample'
然后必须在app.py
中进行注册。
# app.py
from flask import Flask
from blueprints.sample import SAMPLE_BLUEPRINT
app = Flask(__name__)
# Register all the blueprints, url_prefix is optional
app.register_blueprint(SAMPLE_BLUEPRINT, url_prefix='/sample-br')
if __name__ == '__main__':
app.run(debug=True)
您现在可以运行应用程序(python3 app.py
并转到localhost:5000/sample-br/sample,以查看蓝图路线的响应。
此代码未经测试。这只是给您一个入门的想法。请阅读文档并自行尝试,以了解蓝图如何适合Flask项目。