Python系统学习-23

内容回顾:
1. ModelForm
- 是什么?
- 生成表单数据
- 请求数据格式进行校验
- 用法

		class UserModelForm(forms.ModelForm):
			
			class Meta:
				model = models.UserInfo 
				# fields= "__all__"
				fields= ['id','title'...]
				# exclude  = []
				
				widgets = {
					'title': forms.TextInput(attrs={'class':'form-control'})
				}
				
				error_messsages = {
					'title':{
						'required':'标题不能为空'
					}
				}

今日内容:
1. 业务
2. 权限系统(含有一级菜单的权限系统)

内容详细:
1. 业务
- 课程管理
- 知识点:
- ModelForm
- 页面对form对象循环
- 重写init方法实现bootstrap样式的应用
- 错误信息的中文
- 模板重用
- change.html(添加、编辑)
- delete.html(删除)

	- 添加用户 
		- 知识点:
			- ModelForm自定义字段
			- 钩子函数


2. 权限  	
	- 每个公司都有权限系统。
	- 问题:在web程序中,你认为什么是一个权限?
	  答案:一个URL就是一个权限。
	  
	- 问题:权限分配
	  答案: 
			一个人拥有权限多 URL多
			
	- 问题:人和权限的关系
	
		
	设计思路:
		方案一:基于用户权限管理
			用户表 
			权限表 
			用户权限的关系表
			
		方案二:基于角色的权限控制 rbac
			- 用户表
			- 角色
			- 权限
			- 用户角色关系表
			- 角色权限关系表 
			
	RBAC系统实现:
		- 权限控制 
			- 用户表在rbac和crm业务中都存在。将rbac中的用户表变成一个“抽象类”,不再数据库生成而是作为基类为其他用户表服务。
			
			- 中间件中权限的白名单
			
			- 使用admin手动录入权限信息
			
			
			- 登录成功后做权限信息的初始化 	
				- ORM连表查询
				- 注意left join 会出现null 
				- 去重 
				- 数据进行结构化。
				- 放入session 
				
			- 在中间件进行权限的校验 
				- 正则表达式 注意:起始和终止符 
				
			- 需要登录但无需权限校验(每个用户都要的权限,无需再进行分配,直接访问即可)
			
		- 动态菜单(一级菜单) 
			- 用户登录后权限初始化时候: 菜单信息放入session 
			
			- inclusion_tag返回代码块:生成动态菜单(默认选中)
			
		
		- 权限控制粒度到按钮级别

猜你喜欢

转载自blog.csdn.net/weixin_41765871/article/details/84233532