我打算做的是一套运维系统,运维系统中,要管理各种部署的服务.
这里设置两个概念:项目、服务.
服务是真实部署到机器上的功能,而项目是相关服务的组.
比如,现在一个运维平台开发中,一个前端服务,一个后端服务,而这两个服务组成了运维平台项目.
在服务中可以关联多个部门,也可以关联用户,用户来自已关联部门,分为服务负责人和普通用户.
服务负责人和普通用户的权限会不同,但是现在还没有想好.
实际开发流程和前端一样,复制粘贴即可.
首先安装ipython,这样在使用python manage.py shell时,会比较好用.
前面在组织account下文件时,是把文件按不同模块分别放入这三个目录apis、controllers、urls.
但是model还都是统一放入了一个models文件中.
其实我是一想在目录下再按功能细分目录,现在business下就这样做了,分别创建project和service目录,
对应的models、urls、apis、controllers都放入对应的目录下.
这样组织结构时,在settings中配置apps时,应该使用business.project、business.service.
同时可以使用python manage.py makemigrations project service生成数据库变更.
data/sql/rurality.sql
requirements.txt
rurality/settings.py
account/management/commands/sync_url.py
business/project
business/service
data/sql/rurality.sql:
导入最新的sql文件.
requirements.txt:
增加了ipython,这样在使用shell时比较好用.
rurality/settings.py:
这里就是配置上INSTALLED_APPS,business.project和business.service.
account/management/commands/sync_url.py:
这个里面的功能是把所有url都写入到权限表中,省得自己要找着输入,而且还可以遗漏.
但是这样导入时,仍然需要人为的再把不同url划分到不同的模块下,并重命名.
暂时没有界面可以完成上面的操作.
business/project、business/service:
这两个目录就是新的模块项目和服务.
服务只能关联一个项目,服务可以关联多个部门,关联多个用户,用户分成服务负责人和普通用户,服务负责人可以设置多个.
src/api/business/
src/views/business/
src/components/Field/ProjectField/
src/components/Field/ServiceField/
在创建项目和服务页面时,基于之前复制粘贴原则,快速实现,然后再调整.
在实现BaseInfo时使用了Tile组件,但是我发现这样还是太死板了.
比如服务的详情BaseInfo中,其实我想可以快递跳转到所属项目,但是并不能.
现在服务、部门、用户、项目,都可以快速跳转,这样方便使用.
src/api/business/、src/views/business/:
在这些目录下实现项目和服务的代码.
src/components/Field/ProjectField/、src/components/Field/ServiceField/:
分别实现用于搜索项目和服务的组件,方便其它地方使用.