当前位置:   article > 正文

基于python的学生信息管理系统,使用MySQL数据库存储学生信息_python查询数据库里面所有学生信息

python查询数据库里面所有学生信息

本次项目适合初学python基础和数据库基础的小伙伴,可以整体复习一遍基础知识点

一个简单的学生信息管理系统,采用面向对象编程思想编写代码

一、项目简介

该学生信息管理系统的主要功能有:

  1. 添加学生信息
  2. 删除学生信息
  3. 修改学生信息
  4. 查询学生信息
  5. 显示学生信息
  6. 退出当前系统

二、步骤分析

  1. 数据库设计
  2. 数据库操作类,编写操作数据库的方法
  3. 学生类,用于封装学生信息
  4. 功能类,用于编写该系统的相关功能
  5. 主函数

三、需求实现 

3.1 数据库

# 通过学号判断数据库中是否存在该学号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)

3.2 功能类

# 显示功能页面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):

四、具体实现 

数据库:

  1. create database py_sql;
  2. use py_sql;
  3. create table students(id int,name varchar(20),gender varchar(5),phonenum varchar(11),address varchar(225));

学生类:

  1. """
  2. 学生类
  3. """
  4. class Student:
  5. def __init__(self,id,name,gender,phonenum,address):
  6. self.id = id
  7. self.name = name
  8. self.gender = gender
  9. self.phonenum = phonenum
  10. self.address = address
  11. def __str__(self):
  12. return f"{self.id},{self.name},{self.gender},{self.phonenum},{self.address}"

数据库操作类:

  1. """
  2. 数据库操作类
  3. """
  4. from pymysql import Connection
  5. from typing import Tuple
  6. from student import Student
  7. class PysqlUtil:
  8. # 建立数据库连接对象
  9. __conn__ = Connection(
  10. host="localhost",
  11. port=3306,
  12. user="root",
  13. password="root",
  14. autocommit=True
  15. )
  16. # 建立一个游标对象
  17. __cursor__ = __conn__.cursor()
  18. # 选择数据库
  19. __conn__.select_db("py_sql")
  20. # 通过学号判断数据库中是否存在该学号
  21. def is_exist(self,id:int) -> bool:
  22. sql = f"select count(id) from students where id = {id}"
  23. self.__cursor__.execute(sql)
  24. result = self.__cursor__.fetchall()[0][0] # 获取该学号在数据库中的数目
  25. if result == 0 :
  26. return False #不存在
  27. else:
  28. return True #存在
  29. # 添加学生信息进数据库
  30. def insert_into_sql(self,Student : Student) -> bool:
  31. sql = f"insert into students values ({Student.id},'{Student.name}','{Student.gender}','{Student.phonenum}','{Student.address}')"
  32. try:
  33. self.__cursor__.execute(sql)
  34. except Exception as e:
  35. return False
  36. else:
  37. return True
  38. # 从数据库删除学生信息
  39. def delete_from_sql(self,id:int) -> bool:
  40. sql = f"delete from students where id = {id};"
  41. try:
  42. self.__cursor__.execute(sql)
  43. except Exception as e:
  44. return False
  45. else:
  46. return True
  47. # 修改数据库中学生信息
  48. def updata_sql(self,id:int,Student:Student) ->bool:
  49. sql = f"update students set id = {Student.id}, name = '{Student.name}',gender = '{Student.gender}',"\
  50. f"phonenum = '{Student.phonenum}',address ='{Student.address}' where id = {id};"
  51. try:
  52. self.__cursor__.execute(sql)
  53. except Exception as e:
  54. return False
  55. else:
  56. return True
  57. # 按条件查询学生信息
  58. def search_from_sql(self,name:str) -> Tuple:
  59. sql = f"select * from students where name = '{name}'"
  60. self.__cursor__.execute(sql)
  61. result = self.__cursor__.fetchall()
  62. return result
  63. # 查询全部学生信息
  64. def find_all(self) -> Tuple[Tuple] :
  65. sql = "select * from students"
  66. self.__cursor__.execute(sql)
  67. result = self.__cursor__.fetchall()
  68. return result
  69. # 关闭数据库连接
  70. def close_sql(self):
  71. self.__conn__.close()
  72. if __name__ == '__main__':
  73. pu = PysqlUtil()
  74. print(pu.search_from_sql('小明'))

功能类:

  1. """
  2. 功能类
  3. """
  4. from student import Student
  5. from pysqlUtil import PysqlUtil
  6. class Manager:
  7. pu = PysqlUtil()
  8. # 主页面
  9. def info_print(self):
  10. print("----------欢迎来到学生管理系统----------")
  11. print("1.添加学生信息")
  12. print("2.删除学生信息")
  13. print("3.修改学生信息")
  14. print("4.查询学生信息")
  15. print("5.显示学生信息")
  16. print("6.退出当前系统")
  17. print("------------------------------------")
  18. # 添加学生信息
  19. def add_info(self):
  20. try:
  21. stu_data = input("请输入要添加的学生信息(id,name,gender,phone,address):")
  22. stu_list = stu_data.split(",")
  23. student = Student(int(stu_list[0]), stu_list[1], stu_list[2], stu_list[3], stu_list[4])
  24. except Exception as e:
  25. print("学生信息输入有误!添加失败")
  26. else:
  27. if self.pu.is_exist(student.id):
  28. print("该学号已存在,请勿重复添加!")
  29. else:
  30. result = self.pu.insert_into_sql(student)
  31. if result:
  32. print("该学生信息添加成功!")
  33. # 删除学生信息
  34. def del_info(self):
  35. stu_id: int = int(input("请输入要删除的学生id:"))
  36. if self.pu.is_exist(stu_id):
  37. result = self.pu.delete_from_sql(stu_id)
  38. if result:
  39. print("该学生信息删除成功!")
  40. else:
  41. print("该学号不存在,删除失败!")
  42. # 修改学生信息
  43. def updata_info(self):
  44. stu_id: int = int(input("请输入要修改的学生id:"))
  45. if self.pu.is_exist(stu_id):
  46. stu_data = input("请输入修改后的学生信息(id,name,gender,phone,address):")
  47. stu_list = stu_data.split(",")
  48. student = Student(int(stu_list[0]), stu_list[1], stu_list[2], stu_list[3], stu_list[4])
  49. result = self.pu.updata_sql(stu_id,student)
  50. if result:
  51. print("该学生信息修改成功!")
  52. else:
  53. print("该学号不存在,修改失败!")
  54. # 查询学生信息
  55. def search_info(self):
  56. name = input("请输入要查找的学生名字:")
  57. result = self.pu.search_from_sql(name)
  58. if len(result) == 0:
  59. print("不存在该学生!")
  60. else:
  61. for l in result:
  62. print(l)
  63. # 显示学生信息
  64. def print_all(self):
  65. result = self.pu.find_all()
  66. if len(result) == 0:
  67. print("学生表为空!")
  68. else:
  69. for l in result:
  70. print(l)
  71. # 关闭系统
  72. def close_sys(self):
  73. self.pu.close_sql()
  74. print("欢迎下次光临!再见!")
  75. if __name__ == '__main__':
  76. test = Manager()
  77. test.print_all()

主函数:

  1. """
  2. 主函数类
  3. """
  4. from manager import Manager
  5. manager = Manager()
  6. while True:
  7. # 显示功能菜单
  8. # 1.添加学生信息
  9. # 2.删除学生信息
  10. # 3.修改学生信息
  11. # 4.查询学生信息
  12. # 5.显示学生信息
  13. # 6.退出当前系统
  14. manager.info_print()
  15. # 获取用户输入的信息
  16. key = int(input("请输入您的选择:"))
  17. # 进入判断
  18. if key == 1:
  19. manager.add_info() # 添加学生信息
  20. elif key == 2:
  21. manager.del_info() # 删除学生信息
  22. elif key == 3:
  23. manager.updata_info() # 修改学生信息
  24. elif key == 4:
  25. manager.search_info() # 查询学生信息
  26. elif key == 5:
  27. manager.print_all() # 显示全部学生信息
  28. elif key == 6:
  29. str = input("确定要退出吗?(yes/no)")
  30. if str == "yes" or str == "YES":
  31. manager.close_sys() # 关闭系统
  32. break
  33. else:
  34. print("输入有误,请重新操作!")

五、运行效果

添加学生

成功:

失败:

删除学生

修改学生信息

查询学生信息(按照名字搜索)

显示学生信息(全部学生)

退出系统

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/736120
推荐阅读
相关标签
  

闽ICP备14008679号