当前位置: 首页 > 后端技术 > Python

【分享】分层高度定制化的PythonFlaskMVC

时间:2023-03-25 23:49:55 Python

是Python在AI、AR、VR领域应用越来越广泛的原因。同时,Web上也有很多成熟的框架。而且因为我用Flask比较多,个人觉得比较简单,容易上手,可定制性强。这里我将是我在很多项目中迭代过的东西。整理一下我觉得还可以的框架结构。便利使您更容易创建新项目。大家知道,我录制了两门关于python的课程,都是基于这个定制的分层框架开发系统的目录结构。├──apiapi存储│├──controllers所有的C层都放在这里│├──interceptors拦截器相关├──application.py封装了Flask的全局变量,包括app,database等├──commonstores通用部分│├──libs公共方法或类│├──models所有数据库模型├──config配置文件│├──base_setting.py基础配置│├──develop_setting.py开发环境│├──local_setting_demo.py本地开发环境配置demo│└──production_setting.py生产环境配置├──docs文件存储│├──Mysql.md数据库的所有改动都要记录在这里├──jobs定时任务│├──bin│└──tasks所有定时任务存放在这里├──router路由配置入口│├──www.py对应web路由配置│└──api.py对应api路由配置├──manage_web.pyweb启动入口├──manage_job.pyjobtimer启动入口├──manage_api.pyapi启动入口(如果有是一个api)├──requirements.txtpython扩展├──uwsgi.ini生产环境uwsgi├──webHTTP存储│├──controllers所有C层都放在这里│├──拦截器相关的拦截器│├──static静态文件│└──templates模板文件功能特点目录结构分层相信很多人都听说过代码分层。但并不是每个人都明白这样做的好处。对于小项目来说,分开可能问题不大,但是对于大项目来说,分层会带来特别明显的好处。大家看代码就知道去哪里找,让开发和维护更简洁。多环境配置隔离Flask默认有官方的环境配置隔离方式。个人觉得官方的方法不是很好,所以结合之前PHP的使用和实际的开发运维作为自己的一套方案。多环境覆盖是通过如下不同的配置文件来实现的。比如develop可以是开发环境,production可以是生产环境,也可以添加test作为测试环境。通过环境变量ops_config├──config配置文件│├──base_setting.py基础配置│├──develop_setting.py开发环境│├──local_setting_demo.py本地开发环境配置demo│└──production_setting.py中生产环境配置支持多应用模式。很多时候,我们可能要开发好几个应用,但是只有一个不能满足我们的需求。例如,可以添加一个api和一个管理员。为了满足这种情况,我做了一个定制的架构。不同的应用通过不同的入口来确定├──apiapi存储│├──controllers所有的C层都放在这里│├──拦截器相关的拦截器├──router路由配置入口│├──www.py对应的Web路由配置│└──api.py对应api路由配置├──manage_web.pyweb启动入口├──manage_api.pyapi启动入口(如果有api)├──webHTTP存储│├──Controllers所有的C层放在这里│├──interceptors拦截器相关│├──static静态文件│└──templates模板文件支持定时器为了方便我们写定时器,我自己写了一个简单的脚手架。便于使用。还有许多其他在线可用的计时器插件。但是从我的实践来看,定时器还是作为一个独立的应用来处理比较好,最好不要和其他应用有任何耦合。├──jobs定时任务│├──bin│└──tasks所有定时任务都存放在这里├──manage_job.pyjob定时启动入口快速使用github:https://github.com/apanly/pyt。..码云:https://gitee.com/apanly/pyth...相关截图