赞
踩
本次项目适合初学python基础和数据库基础的小伙伴,可以整体复习一遍基础知识点
一个简单的学生信息管理系统,采用面向对象编程思想编写代码
该学生信息管理系统的主要功能有:
# 通过学号判断数据库中是否存在该学号is_exist(self,id:int)
# 添加学生信息进数据库def insert_into_sql(self,Student : Student)
# 从数据库删除学生信息def delete_from_sql(self,id:int)
# 修改数据库中学生信息def updata_sql(self,id:int,Student:Student)
# 按条件查询学生信息def search_from_sql(self,name:str)
# 查询全部学生信息def find_all(self)
# 关闭数据库连接def close_sql(self)
# 显示功能页面def info_print(self)
# 添加学生信息def add_info(self)
# 删除学生信息def del_info(self)
# 修改学生信息def updata_info(self)
# 查询学生信息def search_info(self)
# 显示学生信息def print_all(self):
# 关闭系统def close_sys(self):
数据库:
- create database py_sql;
-
- use py_sql;
-
- create table students(id int,name varchar(20),gender varchar(5),phonenum varchar(11),address varchar(225));
学生类:
- """
- 学生类
- """
- class Student:
- def __init__(self,id,name,gender,phonenum,address):
- self.id = id
- self.name = name
- self.gender = gender
- self.phonenum = phonenum
- self.address = address
-
- def __str__(self):
- return f"{self.id},{self.name},{self.gender},{self.phonenum},{self.address}"
数据库操作类:
- """
- 数据库操作类
- """
- from pymysql import Connection
- from typing import Tuple
- from student import Student
- class PysqlUtil:
- # 建立数据库连接对象
- __conn__ = Connection(
- host="localhost",
- port=3306,
- user="root",
- password="root",
- autocommit=True
- )
- # 建立一个游标对象
- __cursor__ = __conn__.cursor()
-
- # 选择数据库
- __conn__.select_db("py_sql")
-
- # 通过学号判断数据库中是否存在该学号
- def is_exist(self,id:int) -> bool:
- sql = f"select count(id) from students where id = {id}"
- self.__cursor__.execute(sql)
- result = self.__cursor__.fetchall()[0][0] # 获取该学号在数据库中的数目
- if result == 0 :
- return False #不存在
- else:
- return True #存在
-
- # 添加学生信息进数据库
- def insert_into_sql(self,Student : Student) -> bool:
- sql = f"insert into students values ({Student.id},'{Student.name}','{Student.gender}','{Student.phonenum}','{Student.address}')"
- try:
- self.__cursor__.execute(sql)
- except Exception as e:
- return False
- else:
- return True
-
-
- # 从数据库删除学生信息
- def delete_from_sql(self,id:int) -> bool:
- sql = f"delete from students where id = {id};"
- try:
- self.__cursor__.execute(sql)
- except Exception as e:
- return False
- else:
- return True
-
-
- # 修改数据库中学生信息
- def updata_sql(self,id:int,Student:Student) ->bool:
- sql = f"update students set id = {Student.id}, name = '{Student.name}',gender = '{Student.gender}',"\
- f"phonenum = '{Student.phonenum}',address ='{Student.address}' where id = {id};"
- try:
- self.__cursor__.execute(sql)
- except Exception as e:
- return False
- else:
- return True
-
- # 按条件查询学生信息
- def search_from_sql(self,name:str) -> Tuple:
- sql = f"select * from students where name = '{name}'"
- self.__cursor__.execute(sql)
- result = self.__cursor__.fetchall()
- return result
-
- # 查询全部学生信息
- def find_all(self) -> Tuple[Tuple] :
- sql = "select * from students"
- self.__cursor__.execute(sql)
- result = self.__cursor__.fetchall()
- return result
-
- # 关闭数据库连接
- def close_sql(self):
- self.__conn__.close()
-
- if __name__ == '__main__':
- pu = PysqlUtil()
- print(pu.search_from_sql('小明'))
功能类:
- """
- 功能类
- """
- from student import Student
- from pysqlUtil import PysqlUtil
- class Manager:
- pu = PysqlUtil()
- # 主页面
- def info_print(self):
- print("----------欢迎来到学生管理系统----------")
- print("1.添加学生信息")
- print("2.删除学生信息")
- print("3.修改学生信息")
- print("4.查询学生信息")
- print("5.显示学生信息")
- print("6.退出当前系统")
- print("------------------------------------")
-
- # 添加学生信息
- def add_info(self):
- try:
- stu_data = input("请输入要添加的学生信息(id,name,gender,phone,address):")
- stu_list = stu_data.split(",")
- student = Student(int(stu_list[0]), stu_list[1], stu_list[2], stu_list[3], stu_list[4])
- except Exception as e:
- print("学生信息输入有误!添加失败")
- else:
- if self.pu.is_exist(student.id):
- print("该学号已存在,请勿重复添加!")
- else:
- result = self.pu.insert_into_sql(student)
- if result:
- print("该学生信息添加成功!")
-
-
- # 删除学生信息
- def del_info(self):
- stu_id: int = int(input("请输入要删除的学生id:"))
- if self.pu.is_exist(stu_id):
- result = self.pu.delete_from_sql(stu_id)
- if result:
- print("该学生信息删除成功!")
- else:
- print("该学号不存在,删除失败!")
-
-
- # 修改学生信息
- def updata_info(self):
- stu_id: int = int(input("请输入要修改的学生id:"))
- if self.pu.is_exist(stu_id):
- stu_data = input("请输入修改后的学生信息(id,name,gender,phone,address):")
- stu_list = stu_data.split(",")
- student = Student(int(stu_list[0]), stu_list[1], stu_list[2], stu_list[3], stu_list[4])
- result = self.pu.updata_sql(stu_id,student)
- if result:
- print("该学生信息修改成功!")
- else:
- print("该学号不存在,修改失败!")
-
-
- # 查询学生信息
- def search_info(self):
- name = input("请输入要查找的学生名字:")
- result = self.pu.search_from_sql(name)
- if len(result) == 0:
- print("不存在该学生!")
- else:
- for l in result:
- print(l)
-
- # 显示学生信息
- def print_all(self):
- result = self.pu.find_all()
- if len(result) == 0:
- print("学生表为空!")
- else:
- for l in result:
- print(l)
-
- # 关闭系统
- def close_sys(self):
- self.pu.close_sql()
- print("欢迎下次光临!再见!")
-
-
-
-
- if __name__ == '__main__':
- test = Manager()
- test.print_all()
-
-
-
-
主函数:
- """
- 主函数类
- """
- from manager import Manager
-
- manager = Manager()
-
- while True:
- # 显示功能菜单
- # 1.添加学生信息
- # 2.删除学生信息
- # 3.修改学生信息
- # 4.查询学生信息
- # 5.显示学生信息
- # 6.退出当前系统
- manager.info_print()
- # 获取用户输入的信息
- key = int(input("请输入您的选择:"))
- # 进入判断
- if key == 1:
- manager.add_info() # 添加学生信息
- elif key == 2:
- manager.del_info() # 删除学生信息
- elif key == 3:
- manager.updata_info() # 修改学生信息
- elif key == 4:
- manager.search_info() # 查询学生信息
- elif key == 5:
- manager.print_all() # 显示全部学生信息
- elif key == 6:
- str = input("确定要退出吗?(yes/no)")
- if str == "yes" or str == "YES":
- manager.close_sys() # 关闭系统
- break
- else:
- print("输入有误,请重新操作!")
添加学生
成功:
失败:
删除学生
修改学生信息
查询学生信息(按照名字搜索)
显示学生信息(全部学生)
退出系统
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。