程序在python3.5.2下调试通过
mysql发行版本:5.7.24
法律允许范围内,作者保留所有权利!
项目相关文件可以在百度网盘下载,地址为
https://pan.baidu.com/s/1a9AU4E9lvVi0WJFM4nSxfA
提取码:qp7l
代码结构图:
数据库结构图:
下面是创建数据库的命令:
#bash下登陆数据库
mysql -u root -p
#创建并进入数据库
create database student_info default charset=utf8;
use student_info;
#创建学生信息存储表
#这张表以学生id为主键,学生姓名为字符类型,固定长度10位,默认字符集utf8
create table student(id int primary key, name char(10) not null) default charset=utf8;
#创建课程信息存储表
#这张表以课程id为主键,并有自增属性,课程名称为变长,最长30位,不能为空;默认字符集utf8
create table course(courseid int primary key auto_increment, coursename varchar(30) not null) default charset=utf8;
#创建中间表
#存储哪位学生选了哪个课程
#学生id为主键,为了加快检索速度,该字段以student表中的id为外键
#courseid字段以course表中的id为外键
create table selection(studentid int not null, courseid int not null unique, foreign key(studentid) references student(id) on delete cascade on update cascade, foreign key(courseid) references course(courseid) on delete cascade on update cascade);
#创建学生的用户名密码表
#包含username用户名和passwd密码
create table user(username int, passwd char(20) not null, foreign key(username) references student(id) on update cascade on delete cascade);
#创建管理员数据表
create table admin(username char(20) not null, passwd char(20) not null);
#向用户名密码表中添加admin-admin
#用户注册使可以向该张表中加入数据,以便验证
insert into admin values("admin","admin");
下面是数据库操作模块代码:
# -*- coding: UTF-8 -*-
import pymysql
class mysql():
def __init__(self, address, port, user, passwd, char_set):
"""
Function: 类的初始化函数,数据库对象mysql在初始化时直接连接数据库,并获取cursor对象
args:
self:类对象
address:要连接的数据库ip地址
port:要连接的数据库端口
user:连接数据库用户名
passwd:连接数据库密码
char_set:连接用字符集,一般为"utf8"(默认)
return: None
"""
try:
self.database = pymysql.connect(address, user, passwd, charset=char_set, port = port)
self.cursor = self.database.cursor()
self.cursor.execute("use student_info")
except Exception as e:
print("Connection failed!")
print(e)
exit(-1)
def is_admin(self, admin_name):
"""
func:判断用户名admin_name是不是管理员账户
args:
admin_name:需要判断的账户名
return:
True/False
"""
if self.cursor.execute("select * from admin where username=\"%s\"" % admin_name) == 0:
return False
return True
def is_admin_passwd_correct(self, username, passwd):
"""
func:判断用户名username的密码是否为passwd
args:
admin_name:需要判断的账户名
passwd:需要判断的密码
return:
True/False
"""
self.cursor.execute("select * from admin where username=\"%s\"" % username)
if self.cursor.fetchall