Flask是MVC还是MTV架构?

19

很抱歉提这个问题,

但似乎我不太理解Flask是什么,它带有像Django中使用的模板引擎,所以它是一个MTV吗?

每当我看到与MVC和Python有关的内容时,都会看到Turbogears和Django,那么Flask呢?


1
你可以更具体地说明你想知道什么吗? - Polynomial
3
我只想对这个框架进行分类,我将创建一个项目并使用Flask,并且我必须做一些介绍,并定义概念。 - Abdelouahab
1个回答

32

正如主页所述,它是一个微框架。它不是MVC(例如,在flask中没有模型——不过,您可以将其与类似SQLAlchemy的东西结合使用),我不确定MTV是什么意思。它基本上是werkzeug的包装器,werkzeug又是纯WSGI的包装器。它有模板能力的包装器。

编辑:此外,术语有什么关系呢?只需浏览文档,看看它能做什么,然后确定它是否适合您 :)


5
MTV并不是一种真正的东西。如这篇文章所说,它与传统的MVC模式略有不同。维基百科也将Django描述为一个MVC框架 - Felix
14
没有混淆。实际上它们是完全相同的东西。Django开发人员只是为视图(模板)和控制器(视图)使用了不同的名称,但本质上它们与任何其他MVC框架中的相同。唯一的混淆实际上是将Django称为MTV框架,因为这可能会让你认为它是一个不同的概念。它不是。这里是Django开发人员的解释。 - Felix
3
这只是术语。他们称之为微框架,意在表达它既是框架又很小的事实。是的,有人可能会开发一个软件并将其称为MVC微框架,但Flask不是那样的。这些术语(框架、微框架、MVC)都没有字典定义。 - Felix
6
@abdel,MVC这个术语并不适用于Web领域。如果你仔细观察典型Web框架的模式,它应该是这样的:你输入一个URL,它被映射到一个视图函数,该函数返回响应/页面(可以来自模型、模板或两者)。控制器的概念在这里不适用。这就是为什么Django是MTV,Pyramid是RV等。正如Felix所说,术语并不重要,关键是看这个框架是否符合你的需求,然后选择它。 - sojin
2
正如我在原始答案中所说,不行。它没有遵循MVC模式,因为它没有模型。它只有视图(jinja2模板)和控制器(您的实际应用程序)。 - Felix
显示剩余9条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接