首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django权限管理系统设计分析

权限管理顾名思义,其实就是角色控制权限的系统,每个用户对应一个角色,每个角色有对应的权限,比如公司会有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这个类

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190713A0P4A700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券