第七模块:项目实战一 第1章 项目实战:CRM客户关系管理系统开发
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-快速实现权限控制之权限校验
第七模块:项目实战一 第1章 项目实战:CRM客户关系管理系统开发的更多相关文章
- 项目实战:CRM客户关系管理系统开发
21-CRM第一节内容概要 21.1 Stark组件介绍:实现基本的增删改查+自定义复杂操作: 21.2 单例模式:最简单的单例模式: 21.3 路由系统(分发): 21.4 制作启动文件-Djang ...
- Django项目:CRM(客户关系管理系统)--70--60PerfectCRM实现CRM学生上课记录
#urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...
- Django项目:CRM(客户关系管理系统)--58--48PerfectCRM实现CRM客户报名流程学生合同
# sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...
- Django项目:CRM(客户关系管理系统)--84--74PerfectCRM实现CRM权限和权限组限制访问URL
#models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...
- Django项目:CRM(客户关系管理系统)--85--75PerfectCRM实现CRM扩展权限
# sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...
- Django项目:CRM(客户关系管理系统)--82--72PerfectCRM实现CRM动态菜单和角色
#models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...
- Django项目:CRM(客户关系管理系统)--81--71PerfectCRM实现CRM项目首页
{#portal.html#} {## ————————46PerfectCRM实现登陆后页面才能访问————————#} {#{% extends 'king_admin/table_index.h ...
- Django项目:CRM(客户关系管理系统)--78--68PerfectCRM实现CRM业务流程(bpm)报名缴费分页
# pagination.py # ————————68PerfectCRM实现CRM业务流程(bpm)报名缴费分页———————— from django.utils.safestring impo ...
- Django项目:CRM(客户关系管理系统)--62--52PerfectCRM实现CRM客户报名流程学生合同审核
# sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...
随机推荐
- SpringMVC关于请求参数乱码问题
String names =request.getParameter("name") request主要接收的参数是form提交 form提交有的时候会伴随着乱码,该乱码的格式为I ...
- SPOJ SUBXOR
SPOJ SUBXOR 题意 给定一个由正整数构成的数组, 求 异或和小于k 的子序列的个数. 题解 假设答案区间为 [L, R], XOR[L, R] 等价于 XOR[1, L - 1] ^ XOR ...
- C#通过拼接协议的方式来发送邮件类库
using System; using System.Collections.Generic; using System.Net; using System.Net.Mail; using Syste ...
- BindingException: Invalid bound statement (not found)问题排查:SpringBoot集成Mybatis重点分析
重构代码,方法抛出异常:BindingException: Invalid bound statement (not found) 提示信息很明显:mybatis没有提供某方法 先不解释问题原因和排查 ...
- 20181029NOIP模拟赛T3
3 .空间活动 [题目描述] 贝茜和佩奇正在玩一款游戏,在游戏开始会生成一个有n个点m条单向边的地图,经过每条边需要花费价格为Hi的费用(Hi<=1000).但是如果两个点可以互相到达,那么这两 ...
- Spring的扩展
Spring中引用属性文件 JNDI数据源 Spring中Bean的作用域 Spring自动装配 缺点
- JQuery制作网页—— 第六章 jQuery选择器
1.jQuery选择器:jQuery选择器类似于CSS选择器,用来选取网页中的元素. Eg:$("h3").css("background",&qu ...
- JAVA中判断年月日格式是否正确(支持判断闰年的2月份)
一.先说一下年月日(yyyy-MM-dd)正则表达式: 1.年月日正则表达式:^((19|20)[0-9]{2})-((0?2-((0?[1-9])|([1-2][0-9])))|(0?(1|3|5| ...
- 虚拟机(unbutun16.04)设置静态ip
电脑上装了虚拟机,想用xshell连接,无奈按照默认的网络设置方式每次重启了虚拟机后都要修改ip才能访问,这怎么能忍,经过一番折腾终于搞定这个问题了,解决步骤如下: 大步骤分为两步:其一是主机的设置, ...
- operator.itemgetter() 字典列表排序
## 字典列表排序 students = [ {"name": "Stanley", "age": 22, "score" ...