Python+Mysql学生选课系统(附下载链接)

 

程序在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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值