我们借助于Django开发了许多的内部管理系统,例如之前介绍过的Probius、Kerrigan、Proxy等等,这些系统看起来长的都一样,但实际实现的功能确是千差万别,这些不同的系统为什么会长的一样呢?这不仅仅是因为它们使用了同一套前端模板,更为重要的是我们将很多大多系统都要用到的基础功能给集中在了一起,封装成了一个基础的Django应用,例如前端页面及常用插件、后端用户及权限管理等等,任何一个Django项目只要集成了这个应用就能快速拥有这些功能,不仅省去了大把的基础功能开发时间,而且对于后续的更新也是非常的友好
设计思路
因为各种各样的原因,我们没有办法把所有的功能都集中在一个系统里,必然会有多个系统的存在,而对于每个系统都有一些基础的功能要实现,例如用户管理、权限管理、日志记录等等,最初的时候我会copy已开发完成项目的基础代码到新项目使用,这样最为简单方便,但若有bug修复或功能更新,我就必须同时修改多个项目的代码,这不仅繁琐还容易出错,为了优化体验,我决定把所有的基础功能从项目中抽离出来,打包成公共应用供项目引用,这个公共应用我们就叫sadmin
打包主要借助setuptools来完成,打包完成后上传至私有仓库,应用服务器中直接通过pip来安装即