django--权限管理思路版

1,首先创建表 

用户表:user表,角色表:role表,权限表:perimission表,分组表:group表(多个权限分成一个组)
,一级菜单表:menu表(用来显示到页面上).
    user表和role表:一个用户可以有多个角色,一个角色也可以是多个用户,所以2个表之间是多对多.
    role表permission表:一个角色可以有多个权限,一个权限也可以有多个角色,所以2个表之间也是多对多.
    permission表和group表:多个权限分成一个组,所以是一对多.
    group表和menu表:一个menu表可以有多个group,所以也是多对多.

PS:1)用户表角色表权限表 是最基本的表,也就是必须有的表.
    2)group表是把permission表分成几个组而创建出来的表,而menu表是显示一级菜单的表.
   3)permission内部有一个关联自己的字段,把一个组的内容分成一在一起,但是只有字段id等于none的字段才显示在页面上.

2,插数据.

3,既然建完表,那么我们就要开始以结果为导向,想我们以后在页面要显示的样子:

左侧菜单:                            右侧菜单:
    用户系统:                               表结构(显示各个用户的信息)
        一:用户管理                            该用户拥有的权限(增加,删除,修改等等,
                                                        在左侧菜单也可以显示,但是会影响美感)
    订单系统:                        右侧菜单:
        一:订单管理                        表结构(显示各个订单的信息)
                                        该用户拥有的权限(增加,删除,修改等等,
                                                        在左侧菜单也可以显示,但是会影响美感)

 4,现在来看看我们要什么东西

1,左侧菜单的所有东西(用户系统名字,下面是权限的名字(权限需要我们判断
                                                ,还用户拥有哪些权限,显示哪些权限))
2,右侧菜单的东西(用户表里的所有东西,并加上他自己的权限(增加,删除等等)



5,既然知道自己要什么,那就开始取我们要的所有东西(初始化):

1,左侧菜单需要的所有东西(包括:menu表的名字,id, permission表的id名字permission_gp_id(none字段 显示在页面)codeNameurl等) 2,中间件需要判断的所有东西,(权限的路径id)

6,初始化以后,按照django的生命周期开始运行:

1)wsgi协议,不需要我们处理.
2)中间件:分为2部分.(1:判断是否含有session,比如login,和admin等命令进来就能return None)
                (2:判断该用户是否含有某功能,也就是他的路径是否含有某个功能,如果没有则阻止,有就通过)
                    

3)就是urls的创立.注意:我们创立路径的时候,就要按照我们在permission里面创建权限路径一样,不然会找不到.
4)视图函数:    
a)写好函数
b)创建html文件,把我们初始化拿到的东西,渲染到页面上去.



原文地址:https://www.cnblogs.com/52forjie/p/7825097.html