Flask中的控制器类
我正在学习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