CRM用户关系管理系统开发
参考: https://www.cnblogs.com/wupeiqi/articles/9178982.html
一. CRM介绍
不同的用户拥有不同的权限. stark让程序员从重复无聊的增删改查中解放出来. 最后将权限和stark应用到crm业务中. 搞好crm后可以大大缩短软件开发周期.
二. 权限系统介绍
2.1 为什么需要权限控制?
2.2 为什么开发组件? (通用组件)
程序员积累了大量的组件后,可以将组件应用到各种需要的软件中.省去了开发时间.
2.3 web中什么是权限?
url = 权限 一个人的权限有多大,就是他能访问多少个url 人 => URL
三. 第一版表结构设计
第一版表结构设计存在的问题: 同类用户修改权限 => 麻烦 新增用户后需要分配相应的权限 => 麻烦
四. 第二版表结构设计 基于角色的表结构设计 (对用户进行分组, 对组进行权限设计) 基于角色的权限控制简称RBAC
一个用户的权限查询过程, 用户 => 角色 => 权限
五. 在orm中创建表结构
5.1 在pychar中创建第二个app的方法 参考:https://blog.csdn.net/qq_18883663/article/details/87891786
在pycharm的工具栏找到 Tools,点击之后会有“Run manage.py task”选项,点击它之后,在pycharm下面会出现一个输入界面,在里面输入“startapp appName(你的App名称)”,回车之后就可以在工程下面看到你新建的App了。
建立后的整个项目目录如下
5.2 在rbac/models.py中建立表结构
from django.db import models class Permission(models.Model): """ 权限表 """ title = models.CharField(verbose_name='标题', max_length=32) url = models.CharField(verbose_name='含正则的URL', max_length=128) def __str__(self): return self.title class Role(models.Model): """ 角色 """ title = models.CharField(verbose_name='角色名称', max_length=32) permissions = models.ManyToManyField(verbose_name='拥有的所有权限', to='Permission', blank=True) def __str__(self): return self.title class UserInfo(models.Model): """ 用户表 """ name = models.CharField(verbose_name='用户名', max_length=32) password = models.CharField(verbose_name='密码', max_length=64) email = models.CharField(verbose_name='邮箱', max_length=32) roles = models.ManyToManyField(verbose_name='拥有的所有角色', to='Role', blank=True) def __str__(self): return self.name
执行数据库迁移命令
六. 销售管理系统业务
6.1 下载整个项目压缩包文件.解压后,用pycharm打开.
6.2 前面的项目删除掉.以后用这个了.