Python随笔-生活工作点滴Python小哥哥

Django权限管理系统设计分析

2019-07-10  本文已影响63人  我爱学python

权限管理顾名思义,其实就是角色控制权限的系统,每个用户对应一个角色,每个角色有对应的权限,比如公司会有CEO,总监,销售经理,销售员,每个人的权限都不一样,那我们给他展示的url也都不同

一、首先创建项目,再创建一个名为rbac的app

  修改配置文件settings,将css以及js、img等放到static文件夹下

二、表结构设计

 设计表:

  创建五个类,七张表:

  菜单表,权限组,权限表,用户表,角色表,

角色表和权限表是多对多的关系(一个角色可以有多个权限,一个权限可以对应多个角色)

用户表和角色表是多对多的关系(一个用户可以有多个角色,一个角色有多个用户)

models.py


我们一般是先看到的是列表页面,在这个页面上是否显示添加,是否显示编辑,是否显示删除,都是需要判断的, 有无添加权限,有无删除权限,有无编辑权限,我们可以给每一个url一个代号,将代号取出来放在一个列表里面

把这个字典存到session中当你访问页面的时候我就知道你有什么权限一个url对应一个code 多个url对应一个组.

三、通过Django-admin录入数据

先创建一个超级用户:python3 manage.py createsuperuser

用户名:root

密码:a123456

 在admin.py中做如下配置:

models.py中做如下配置,就可以在添加的时候显示中文了。

 四、编写登录

  利用Django的中间件进行控制,没有登录的用户不能直接访问内部的url,而且只能访问admin,login,index这三个url,将其设置为白名单,用户登录成功后,将用户信息方法哦session里边,进行权限访问时去session里边读取,如果有的话进行url跳转,如果没有的话返回‘’无权访问‘’

   1.在settings内设置白名单:

  2.编写中间件控制时,必须继承MiddlewareMixin这个类

上一篇下一篇

猜你喜欢

热点阅读