第七模块:项目实战一 第1章 项目实战:CRM客户关系管理系统开发
2024-10-21 18:33:56
01-crm介绍
02-权限系统介绍
03-第一版表结构设计
04-第二版表结构设计
05-orm中创建表结构
06-销售管理系统业务
07-销售管理系统权限信息录入
08-快速实现简单的权限控制的设计思路
09-快速实现简单权限之初始化用户权限
10-快速实现权限控制之权限校验
01-crm介绍
1、CRM系统初识;
2、CRM三大模块初识(权限、stark组、CRM);
02-权限系统介绍
1、权限开发的重要性;
2、什么是权限?URL==权限;
3、人和URL的关系;
4、表结构的版本迭代;
03-第一版表结构设计
1、权限表;
2、用户表;
04-第二版表结构设计
1、基于角色的权限控制RBAC;
05-orm中创建表结构
1、大目标-CRM系统;
- 权限
- Startk组件
- CRM业务
操作步骤:
1、创建Django project,luffy_permission
2、创建两个app应用;rbac(基于角色的权限组件控制)、web(销售管理系统);
3、rbac应用中,将权限相关的表编写到此models.py中;
from django.db import models # Create your models here.
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
4、web应用中,将销售管理系统表写到此app的models.py中;
5、将5张表-权限、角色、权限角色关系表、用户、用户角色关系表进行创建;
06-销售管理系统业务
1、博文参考;https://www.cnblogs.com/wupeiqi/articles/9178982.html
2、页面展示;
07-销售管理系统权限信息录入
1、两个app的整合;
销售管理系统中的URL:
2、权限和角色信息的分配;
08-快速实现简单的权限控制的设计思路
1、快速完成一个基本的权限控制;
2、数据库进行多表查询,效率非常低;
09-快速实现简单权限之初始化用户权限
10-快速实现权限控制之权限校验
最新文章
- 带隙基准(Bandgap,BG)
- C# 获取指定接口的所有实现类
- 【JS】两种计时器/定时器
- js 中 continue 与 break 熟练使用
- 2016 -1 - 3 省市联动demo
- magento使用google analytics
- SVN在团队项目中的使用技巧:[2]Tag操作
- WPF NotifyIcon and Taskbar 任务栏示例
- centos软件环境
- HTML5要点(二)
- 关于OpenXml SpreadSheet列宽根据内容的Auto-suitability
- LeetCode 650 - 2 Keys Keyboard
- 图像处理------泛洪填充算法(Flood Fill Algorithm) 油漆桶功能
- TensorFlow从1到2(四)时尚单品识别和保存、恢复训练数据
- kettle基于时间戳增量更新
- How to show color in CSS
- rpm 包的安装、卸载、升级、查询、验证
- jdk8新特性(详解)
- NUC970 U-Boot 使用說明
- java多线程(六)
热门文章
- if not
- 利用python进行数据分析——(一)库的学习
- CUDA 深入浅出谈[转]
- python调用对象属性出错:AttributeError: 'function' object has no attribute '_name_'
- JQuery给一个元素绑定两次点击事件(第二次点击事件)
- 《Linux 学习》01---redis安装, 并使用Redis Desktop Manager 连接
- Cannot set HTTP gem source: “source https://rubygems.org not present in cache”
- 走进MySQL
- 3. HTML中的容器标签
- mysql8.0新增用户及密码加密规则修改