Flask框架:MVC模式

2024-04-12

Flask框架天然支持MVC模式吗?我应该将应用程序的哪些部分视为模型,什么部分视为视图,什么部分视为控制器?

通常(根据我的经验)Flask 应用程序如下所示:

main_dir--|
          |
         app1--|
          |    |
          |  __init__.py
          |  api.py
          |  models.py
          |
         static--|
          |      |
          |    all the static stuff
          |
         app.py # with blueprints registering

Flask实际上并不是一个MVC框架。它是一个简约的框架,为您在如何构建应用程序方面提供了很大的自由,但是 MVC 模式非常适合 Flask 提供的功能,至少在当今 Web 应用程序上下文中理解 MVC 模式的方式上是如此(纯粹主义者可能会反对)。

本质上,您编写方法并将它们映射到特定路线,例如:

@app.route("/")
def hello():
    return "Hello World!"

如您所见,那里没有视图或模型。但是,它也是构建在 Jinja2 模板库之上的,因此在现实的应用程序中,您的方法(充当控制器)如下所示:

@app.route("/")
def hello():
    return render_template('index.html', username="John Doe")

在这里,你使用index.html用于呈现页面的模板。这就是你现在的看法。

Flask 没有规定任何模型。您可以使用任何您想要的东西 - 从复杂的对象模型(通常使用一些 ORM,如 SQLAlchemy)到适合您需求的最简单的东西。

现在你已经有了它:MVC

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask框架:MVC模式 的相关文章

随机推荐