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

目录

前言

MVC简介

项目架构图:

系统工作原理

服务层级统一包装结果

事务控制原理和代码


前言

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

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

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

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

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

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

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

MVC简介

项目架构图:

   

 

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

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

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

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

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

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

 

系统工作原理

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

服务层级统一包装结果

事务控制原理和代码

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

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

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值