Flask中的控制器类

6 投票
1 回答
8930 浏览
提问于 2025-04-17 21:57

我正在学习Flask,之前有ASP.NET MVC和PHP MVC的背景。现在我不太确定如何将处理请求的功能进行分组。

在ASP.NET MVC中,动作是方法,控制器是类。控制器可以被分组到区域中。但在Flask应用中,可以将其分为模块和/或蓝图(我觉得这和ASP.NET MVC的区域有点像)。不过这两种方式都不使用类,为什么呢?

请查看下面的精彩回答,另一个选择是 Flask-Classy

1 个回答

5

这只是我的个人看法。

首先,在大多数情况下,你并不需要使用类。我找不到需要用类来连接调度器和端点的例子(我不是说那些复杂的情况,比如使用装饰器或可插拔视图)。在ASP.MVC等框架中,你的控制器实例有很多吗?一个?那继承又有什么用呢?我希望你能理解我的逻辑。你也可以找到一些有趣的话题,关键词是停止写类

其次,在Python中,模块函数其实跟(单例)和方法非常相似。

第三,它的嵌套层级更少。

为了对操作进行分组,我尝试根据逻辑来拆分控制器(用flask的说法就是视图,具体可以看这个链接),但你可能会有更重要的标准来进行分类。举个简单的例子:

views/
    __init__.py
    about.py
    home.py
    products.py
    user/
        __init__.py
        dashboard.py
        product_1.py
        product_2.py
        product_3.py
        settings.py

撰写回答