最近在学Python, 看到Django 网上开源的很多项目都是在views函数里面写满逻辑代码,这相当于Java里面controller写业务代码一样,是大家都这样,还是只有我看到的这样,实际python写项目的时候要不要分层?
Python 本身并不强制要求分层,但分层是一种良好的软件设计原则,有助于保持代码的清晰、可维护和可扩展。在 Python 项目中,特别是在使用 Django 这样的 web 框架时,是否进行分层很大程度上取决于项目的规模、团队的偏好以及项目的具体需求。
对于小型项目或原型开发,有时在 views
函数中直接编写逻辑代码是可行的,因为这能快速地实现功能并减少不必要的抽象和复杂性。然而,对于大型或复杂项目,这种做法可能导致代码结构混乱、难以维护,并且不利于团队协作。
在 Python 项目中,常见的分层方式包括:
views
函数通常包含业务逻辑,但也可以通过进一步抽象和封装来保持代码的清晰和可维护性。总之,是否进行分层取决于项目的具体需求和团队的偏好。在 Python 项目中,通过合理的分层和抽象,可以提高代码的可读性、可维护性和可扩展性。
这只是一种设计模式,Django遵循的是MVT模式,即Model(数据库),View(视图层),T(模板层),而且每一个app下面都是这种设计。主打的就是归类,业务是业务,数据层是数据层,路由是路由等等。
实际当中,像django这样的,因为你一开始创建项目的时候,django就会自动给你分配好了各个文件:
...
models.py
views.py
urls.py
...
等等,所以你就按照这么写就行。其他框架,比如fastapi,如果接口很少,什么都少,一个main.py
就可以包揽所有。如果东西偏多,就按接口属性归类分不同的app名称作为目录,每个app下再有对应的负责数据库的、路由的、业务的等等。
设计模式的出现不是强迫你去使用,而是基于前人积累的经验,在大型项目上,这种写法往往好维护、好梳理、条理清晰。如果等到你一个项目越来越庞大的时候,你也可能会想想如何去设计代码结构,因为如果靠一个文件大包大揽,你也会头疼的对吧。
毕竟代码只要能跑起来实现需求就行,你如果不想按照这些方式来,也完全没有问题。
15 回答8.4k 阅读
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
你应该是说 mvc 结构吧, 这个一般根据项目来,如果项目复杂程度比较高,还是区分开来,易维护,易扩展,如果身逻辑不复杂,就没必要那么麻烦,增加自己的代码量