Flask 框架自然支持 MVC 模式吗?我应该将应用程序的哪一部分视为模型,将什么视为视图以及将什么视为控制器?
通常(根据我的经验)Flask 应用程序看起来像这样:
main_dir--|
|
app1--|
| |
| __init__.py
| api.py
| models.py
|
static--|
| |
| all the static stuff
|
app.py # with blueprints registering
原文由 I159 发布,翻译遵循 CC BY-SA 4.0 许可协议
Flask 实际上不是 MVC 框架。它是一个极简主义的框架,可以让您在如何构建应用程序方面有很大的自由度,但是 MVC 模式非常适合 Flask 提供的功能,至少在当今 Web 应用程序上下文中对 MVC 模式的理解方式是这样的(纯粹主义者可能会反对)。
本质上,您编写自己的方法并将它们映射到特定路线,例如:
如您所见,那里没有视图或模型。但是,它也是建立在 Jinja2 模板库之上的,因此在实际应用中,您的方法(充当控制器)如下所示:
在这里,您使用
index.html
模板来呈现页面。那是你现在的看法。Flask 没有规定任何模型。您可以使用任何您想要的东西——从复杂的对象模型(通常使用像 SQLAlchemy 这样的 ORM)到适合您需要的最简单的东西。
你有它:MVC