Flask项目使用MVC思想进行重构

目录

前言

MVC简介

项目架构图:

系统工作原理

服务层级统一包装结果

事务控制原理和代码

前言

最近Boss有需求说要重构后端的web项目,之前是用flask+celery+mysql来搭建的,由于之前比较赶,可能比较仓促。于是让我从数据库开始,再重构一下后端项目,方便项目之后的需求的新增和扩展维护。

于时我结合后端项目的几个重要的问题:事务、并发、可扩展性(业务分层),考察了之前的项目结构和组织。发现了几个问题:

并发:对于这块,,用户群体较少,目前暂时不用考虑,所以就没有多过在意。

问题1. 原系统整体架构思想采用的是面向过程的方法:需要什么功能,就封装什么功能模块(按照功能划分),文件目录没有章法,不利于开发的分工和模块的解耦,以及项目需求后续的扩展。

解决:整体架构转变采用面向对象的方式来架构组织,进行业务的分层(按照责任划分),最终基于flask,采用MVC的架构思想来重构后端项目

问题2. 原系统没有进行事务的处理(使用python轻量级web框架flask进行开发,没有事务处理的高级调用模块(和java的springBoot框架进行对比))

解决:自己用Python装饰器模仿springBoot事务注解的方式,实现了在Service(服务层)级的统一事务控制

MVC简介

Flask项目使用MVC思想进行重构

项目架构图:

Flask项目使用MVC思想进行重构

因为项目采用前后端(前端采用vue)分离方式,所以后端项目架构严格来讲,实际上只用到了M、C两部分。

新建本地化系统项目重构的目录,如左图,

Config: 配置文件相关;Const: 存放系统用到的常量;Dao: 数据访问对象;

Dto: 数据传输对象;Entity: 数据实体;interceptors:系统拦截器,路由转发可能在前端vue中来处理拦截,可能用不到;Log: 系统日志处理相关;

Service: 系统服务;Sql:系统数据构建sql语句;Transactional: 系统事务控制;

Utils: 系统的工具类;Vo: 视图对象;Web: 视图层,处理路由转发

系统工作原理

Flask项目使用MVC思想进行重构

那么,MVC 架构的思想怎么在具体的系统中体现 ; 控制器收到客户端的请求,根据路由规则进行转发倒相应的服务上去; 服务层统一返回结果

服务层级统一包装结果

Flask项目使用MVC思想进行重构

事务控制原理和代码

事务控制原理和代码部分将在下一篇博文中进行讲解和展示,出门右转,博客地址:

Python装饰器-服务层级事务控制_咸鱼的博客-CSDN博客

Original: https://blog.csdn.net/ln1593570p/article/details/116789499
Author: LNP一号
Title: Flask项目使用MVC思想进行重构

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/750034/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球