Flask 框架天生就支持MVC 模式吗?我应该将应用程序的哪一部分视为模型,将什么视为 View 以及将什么视为 Controller ?
通常(根据我的经验)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!"
如您所见,那里没有 View 或模型。但是,它也是构建在 Jinja2 模板库之上的,因此在实际的应用程序中,您的方法(充当 Controller )如下所示:
@app.route("/")
def hello():
return render_template('index.html', username="John Doe")
在这里,您使用 index.html
模板来呈现页面。这是您现在的看法。
Flask 没有规定任何模型。您可以使用任何您想要的东西 - 从复杂的对象模型(通常使用像 SQLAlchemy 这样的 ORM)到适合您需要的最简单的东西。
你有它:MVC
关于python - flask 框架 : MVC pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12547206/