python开发信息系统权限设置_python学习之基本权限管理系统

本文介绍了如何使用Python和MySQL构建一个简单的权限管理系统。主要包括设计数据库表结构,如用户信息表、角色信息表、权限信息表和权限与角色对应关系表,并提供了创建表的SQL语句。此外,详细阐述了程序的目录结构和各模块职责,如添加、删除用户、角色和权限的操作。代码遵循特定规则,将SQL操作与业务逻辑分离,并使用pymysql模块连接和操作数据库。
摘要由CSDN通过智能技术生成

通过mysql和python相关知识实现简单权限管理系统。主要功能有添加、删除用户、添加删除权限以及分配权限等。实现过程中主要运用了mysql创建表、sql语句、外键、navicat使用、python模块pymysql操作mysql、python动态导入模块等相关知识。

一、数据库表设计

1、表的相关描述

表的具体信息描述

ContractedBlock.gif

ExpandedBlockStart.gif

一共设计了4张表

用户信息表(user_type):存储用户名、密码信息,user_type_id为外键和角色表相关联‘,用来标识用户的角色

角色信息表(user_type):用来定义角色,如:普通用户,超级用户等

权限信息表(permission):用来定义权限信息,func是指实现该权限的方法,module是指该方法对应模块的路径,在python中可以动态导入该模块调用相关方法

权限和角色对应关系表(user_type_to_permission):user_type_id为外键是角色id和角色信息表关系,permission_id为外键是权限id和权限信息表关联

View Code

797927-20190624094146106-773358550.png

二、创建表

1、按照如下顺序创建表

角色表

ContractedBlock.gif

ExpandedBlockStart.gif

CREATE TABLE user_type (

nid INT NOT NULL auto_increment PRIMARY KEY,

NAME VARCHAR (30)

) ENGINE= INNODB DEFAULT CHARSET = utf8;

View Code

用户信息表

ContractedBlock.gif

ExpandedBlockStart.gif

CREATE TABLE user_info (

nid INT NOT NULL auto_increment PRIMARY KEY,

username VARCHAR (30),

passwd VARCHAR (30),

user_type_id INT,

FOREIGN KEY (user_type_id) REFERENCES user_type (nid)

) ENGINE= INNODB DEFAULT CHARSET = utf8;

View Code

权限信息表

ContractedBlock.gif

ExpandedBlockStart.gif

CREATE TABLE permission (

nid INT NOT NULL auto_increment PRIMARY KEY,

caption VARCHAR (30),

module VARCHAR (30),

func VARCHAR (30)

) ENGINE= INNODB DEFAULT CHARSET = utf8;

View Code

权限和角色对应关系表

ContractedBlock.gif

ExpandedBlockStart.gif

CREATE TABLE user_type_to_permission (

nid INT NOT NULL auto_increment PRIMARY KEY,

user_type_id INT,

permission_id INT,

FOREIGN KEY (user_type_id) REFERENCES user_type (nid),

FOREIGN KEY (permission_id) REFERENCES permission (nid)

) ENGINE= INNODB DEFAULT CHARSET = utf8;

View Code

2、插入模拟数据

ContractedBlock.gif

ExpandedBlockStart.gif

insert into user_type (name) values ('超级管理员'),('普通管理员');

insert into permission (caption,module,func) values ('添加用户','src.auth.user','add_user'),('删除用户','src.auth.user','del_user');

insert into user_info (username,passwd,user_type_id) values ('root','123',1),('yqh','123','2');

insert user_type_to_permission (user_type_id,permission_id) values (1,1),(1,2),(2,1);

View Code

三、程序实现

编写代码时主要遵从以下规则:1、为操作每一张表的sql专门写一个类 2、需要做连接查询时sql语句放在from后面那张表对应的类中 3、操作sql的代码和业务的代码分开在不同目录

1、程序目录说明

ContractedBlock.gif

ExpandedBlockStart.gif

├── bin

│ └── main.py#程序入口

├── config

│ └── settings.py#配置文件,数据库的一些配置信息

└── src #src目录主要放一些和业务相关的方法

├── auth

│ ├── task.py#创建/删除任务

│ ├── type_permission.py #查看用户权限、为某个角色分配权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值