python 管理系統實現mysql交互的示例代碼

沒配置的可以看一下我上一篇
地址

開啟小皮

在這裡插入圖片描述

數據庫text 數據庫表 student 字段 student_no name age sex

在這裡插入圖片描述

效果圖如下

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

用類的方法寫瞭一下構造搞瞭半天 但搞出來瞭
修改那有個bug 修改玩瞭還卡在那輸入一個不存在的學號就退出當前 回到主頁面瞭
寫著復盤

'''
學生系統基本功能
增刪查改
'''
import  pymysql
class Mysql(object):
	#初始化方法
    def __init__(self):
        self.db = pymysql.connect(
            host='localhost',
            user='root',
            password='123456789',
            port=3306,
            db='text'
        )
        self.cursor = self.db.cursor()
    # 添加
    def insert(self, name, age, sex):
        sql = "INSERT INTO student(name, age,sex) values(%s, %s, %s)"
        try:
            self.cursor.execute(sql, (name, age, sex))
            self.db.commit()
            print('插入成功')
        except:
            self.db.rollback()
            print('插入失敗')
            self.db.close()
            pass
    #查詢所有
    def select(self):
        sql = "select * from student "
        try:
            self.cursor.execute(sql)
            result = self.cursor.fetchall()
            self.db.commit()
            print(f'查詢成功數據為:{result}')
        except:
            self.db.rollback()
            self.db.close()
            pass
    #查詢單個
    def select_one(self,name):
        sql = "select name from student "
        try:
            self.cursor.execute(sql)
            result = self.cursor.fetchall()
            self.db.commit()
            print(f'查詢成功數據為:{result}')
        except:
            self.db.rollback()
            self.db.close()
            pass
	修改那有個bug 修改玩瞭還卡在那輸入一個不存在的學號就退出當前 回到主頁面瞭
    # 修改
    def Revise(self, student_no, name, age):
        sql = "update student set name=%s,age=%s where student_no=%s"
        params = [name, age, student_no]
        try:
            self.cursor.execute(sql, (params))
            self.db.commit()
            print('修改成功')
            pass
        except:
            self.db.rollback()
            print('修改失敗')
            self.db.close()
            pass
    #刪除
    def del_Revise(self,student_no):
        sql = "delete from student where student_no=%s "
        params = [student_no]
        try:
            self.cursor.execute(sql,(params))
            self.db.commit()
            print('刪除成功')
        except:
            self.db.rollback()
            print('刪除失敗')
            self.db.close()
            pass
#學生類
class Student():
    #初始化方法
    def __init__(self,name,age,sex):
        #添加屬性
        self.name =name
        self.age =age
        self.sex =sex
class StudentManageSystem():
    def __init__(self):
        #定義一個列表
        self.student_list = list()
    #打印功能
    def show_menu(self):
        '''
        改函數是為瞭展示功能界面
        '''
        #1.顯示系統的功能菜單
        print('-------學生管理系統1.0________')
        print('+-----------------------------+')
        print('|  1) 添加學生信息            |')
        print('|  2) 修改學生信息          |')
        print('|  3) 刪除學生信息                  |')
        print('|  4) 顯示所有學生                  |')
        print('|  5) 查詢學生信息               |')
        print('|  6) 退出管理系統               |')
        print('+-----------------------------+')
    # 添加學生函數
    def add_student(self):
        name = input("請輸入學生的姓名:")
        age = input("請輸入學生的年齡:")
        sex = input("請輸入學生的性別:")
        db.insert(name,age,sex)
        # 添加一個學生,需要自己創建一個學生對象
        stu = Student(name, age, sex)
        # 把對象添加到列表裡面
        self.student_list.append(stu)
        #print(self.student_list)
        #print('添加成功')
    # 顯示所有學生函數
    def show_all_student(self):
        db.select()
        for index, student in enumerate(self.student_list):
            student_no = index + 1
            print("學號:", student_no,
                  "姓名:", student.name,
                  "年齡:", student.age,
                  "性別:", student.sex
                  )
    # 修改學生信息函數
    def modify_student(self,student_no, name, age):
        # 1.接收用戶輸入的學號
        db.Revise(student_no,name,age)
        student_no = int(input("請輸入要修改學生的學號:"))
        index = student_no - 1
        index = student_no
        student_no = index
        if 0 <= index < len(self.student_list):
            student = self.student_list[index]
            new_name = input("請輸入修改後的姓名:")
            new_age = input("請輸入修改後的年齡:")
            # new_sex = input("請輸入修改後的性別:")
            student.name = new_name
            student.age = new_age
            # student.sex = new_sex
            name = new_name
            age = new_age
            # sex = new_sex
            #print("修改成功")
        else:
            print("請輸入正確的學號:")
    # 刪除學生信息
    def delete_student(self):
        try:
            student_no = int(input("請輸入要刪除學生的學號:"))
            db.del_Revise(student_no)
            # 2.將學號轉換為下標
            index = student_no - 1
            if 0 <= index <= len(self.student_list):
                student = self.student_list.pop(index)
                print("%s,刪除成功!" % student.name)
            else:
                print("請輸入有效學號!")
        except:
            pass
    # 查詢某個學生信息
    def query_student(self):
        name = input("請輸入要查詢學生的姓名:")
        db.select_one(name)
        for index, student in enumerate(self.student_list):
            student_no = index + 1
            if student.name == name:
                print("學號:", student_no,
                      "姓名:", student.name,
                      "年齡:", student.age,
                      "性別:", student.sex
                      )
                break
            else:
                print("對不起,沒有該學生")
    # 程序入口函數,程序開始時第一個執行的函數
    def run(self):
        while True:
        # 1.顯示系統功能菜單
            self.show_menu()
        # 2.接收用戶輸入的功能選項
            menu_option = input("請輸入你要操作的功能選項:")
        # 3. 判斷用戶選擇的指定功能,然後完成對應的操作(增刪改查的功能)
            if menu_option == "1":
                print("添加學生信息")
                self.add_student()
            elif menu_option == "2":
                print("修改學生信息")
                student_no = int(input("請輸入要修改學生的學號:"))
                name = input('請輸入要修改學生的姓名:')
                age = input('請輸入要修改學生的年齡:')
                self.modify_student(student_no, name, age)
            elif menu_option == "3":
                print("刪除學生信息")
                self.delete_student()
            elif menu_option == "4":
                print("顯示學生信息")
                self.show_all_student()
            elif menu_option == "5":
                print("查詢學生信息")
                self.query_student()
            else:
                print("程序退出")
                break
if __name__ == '__main__':
    db = Mysql()
    system = StudentManageSystem()
    #程序入口方法
    system.run()

到此這篇關於python 管理系統實現mysql交互的文章就介紹到這瞭,更多相關python 管理系統mysql交互內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: