python?管理系統(tǒng)實(shí)現(xiàn)mysql交互的示例代碼
沒配置的可以看一下我上一篇
地址
開啟小皮

數(shù)據(jù)庫text 數(shù)據(jù)庫表 student 字段 student_no name age sex

效果圖如下
增

刪

查

改

用類的方法寫了一下構(gòu)造搞了半天 但搞出來了
修改那有個(gè)bug 修改玩了還卡在那輸入一個(gè)不存在的學(xué)號就退出當(dāng)前 回到主頁面了
寫著復(fù)盤
'''
學(xué)生系統(tǒng)基本功能
增刪查改
'''
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'查詢成功數(shù)據(jù)為:{result}')
except:
self.db.rollback()
self.db.close()
pass
#查詢單個(gè)
def select_one(self,name):
sql = "select name from student "
try:
self.cursor.execute(sql)
result = self.cursor.fetchall()
self.db.commit()
print(f'查詢成功數(shù)據(jù)為:{result}')
except:
self.db.rollback()
self.db.close()
pass
修改那有個(gè)bug 修改玩了還卡在那輸入一個(gè)不存在的學(xué)號就退出當(dāng)前 回到主頁面了
# 修改
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
#學(xué)生類
class Student():
#初始化方法
def __init__(self,name,age,sex):
#添加屬性
self.name =name
self.age =age
self.sex =sex
class StudentManageSystem():
def __init__(self):
#定義一個(gè)列表
self.student_list = list()
#打印功能
def show_menu(self):
'''
改函數(shù)是為了展示功能界面
'''
#1.顯示系統(tǒng)的功能菜單
print('-------學(xué)生管理系統(tǒng)1.0________')
print('+-----------------------------+')
print('| 1) 添加學(xué)生信息 |')
print('| 2) 修改學(xué)生信息 |')
print('| 3) 刪除學(xué)生信息 |')
print('| 4) 顯示所有學(xué)生 |')
print('| 5) 查詢學(xué)生信息 |')
print('| 6) 退出管理系統(tǒng) |')
print('+-----------------------------+')
# 添加學(xué)生函數(shù)
def add_student(self):
name = input("請輸入學(xué)生的姓名:")
age = input("請輸入學(xué)生的年齡:")
sex = input("請輸入學(xué)生的性別:")
db.insert(name,age,sex)
# 添加一個(gè)學(xué)生,需要自己創(chuàng)建一個(gè)學(xué)生對象
stu = Student(name, age, sex)
# 把對象添加到列表里面
self.student_list.append(stu)
#print(self.student_list)
#print('添加成功')
# 顯示所有學(xué)生函數(shù)
def show_all_student(self):
db.select()
for index, student in enumerate(self.student_list):
student_no = index + 1
print("學(xué)號:", student_no,
"姓名:", student.name,
"年齡:", student.age,
"性別:", student.sex
)
# 修改學(xué)生信息函數(shù)
def modify_student(self,student_no, name, age):
# 1.接收用戶輸入的學(xué)號
db.Revise(student_no,name,age)
student_no = int(input("請輸入要修改學(xué)生的學(xué)號:"))
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("請輸入正確的學(xué)號:")
# 刪除學(xué)生信息
def delete_student(self):
try:
student_no = int(input("請輸入要?jiǎng)h除學(xué)生的學(xué)號:"))
db.del_Revise(student_no)
# 2.將學(xué)號轉(zhuǎn)換為下標(biāo)
index = student_no - 1
if 0 <= index <= len(self.student_list):
student = self.student_list.pop(index)
print("%s,刪除成功!" % student.name)
else:
print("請輸入有效學(xué)號!")
except:
pass
# 查詢某個(gè)學(xué)生信息
def query_student(self):
name = input("請輸入要查詢學(xué)生的姓名:")
db.select_one(name)
for index, student in enumerate(self.student_list):
student_no = index + 1
if student.name == name:
print("學(xué)號:", student_no,
"姓名:", student.name,
"年齡:", student.age,
"性別:", student.sex
)
break
else:
print("對不起,沒有該學(xué)生")
# 程序入口函數(shù),程序開始時(shí)第一個(gè)執(zhí)行的函數(shù)
def run(self):
while True:
# 1.顯示系統(tǒng)功能菜單
self.show_menu()
# 2.接收用戶輸入的功能選項(xiàng)
menu_option = input("請輸入你要操作的功能選項(xiàng):")
# 3. 判斷用戶選擇的指定功能,然后完成對應(yīng)的操作(增刪改查的功能)
if menu_option == "1":
print("添加學(xué)生信息")
self.add_student()
elif menu_option == "2":
print("修改學(xué)生信息")
student_no = int(input("請輸入要修改學(xué)生的學(xué)號:"))
name = input('請輸入要修改學(xué)生的姓名:')
age = input('請輸入要修改學(xué)生的年齡:')
self.modify_student(student_no, name, age)
elif menu_option == "3":
print("刪除學(xué)生信息")
self.delete_student()
elif menu_option == "4":
print("顯示學(xué)生信息")
self.show_all_student()
elif menu_option == "5":
print("查詢學(xué)生信息")
self.query_student()
else:
print("程序退出")
break
if __name__ == '__main__':
db = Mysql()
system = StudentManageSystem()
#程序入口方法
system.run()
到此這篇關(guān)于python 管理系統(tǒng)實(shí)現(xiàn)mysql交互的文章就介紹到這了,更多相關(guān)python 管理系統(tǒng)mysql交互內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中easy_install 和 pip 的安裝及使用
本篇文章主要介紹了Python中easy_install 和 pip 的安裝及使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
python爬蟲之urllib庫常用方法用法總結(jié)大全
urllib是python自帶的請求庫,各種功能相比較之下也是比較完備的,下面這篇文章主要給大家介紹了關(guān)于python爬蟲之urllib庫常用方法用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-11-11
Python數(shù)據(jù)模型與Python對象模型的相關(guān)總結(jié)
這篇文章主要介紹了Python數(shù)據(jù)模型與Python對象模型的相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2021-01-01
詳解在Anaconda環(huán)境下Python安裝pydot與graphviz的方法
這篇文章主要為大家詳細(xì)介紹了在Anaconda環(huán)境中,安裝Python語言pydot與graphviz兩個(gè)模塊的方法,文中的安裝方法講解詳細(xì),感興趣?的可以了解一下2023-02-02
Python?Web?App開發(fā)Dockerfiles編寫示例

