如何用pychon和mysql写一个图书管理系统
时间: 2023-05-02 09:02:58 浏览: 109
使用Python连接MySQL数据库,利用MySQL的API操作数据库,实现图书管理系统。可以使用第三方库如pymysql、mysql-connector等连接MySQL。通过编写Python代码实现与数据库的交互,实现图书的增删改查以及借阅归还等功能。同时可以利用Python的GUI库如tkinter、pyqt等实现图形界面。
相关问题
使用python和mysql写一个图书管理系统
好的,下面是一个简单的图书管理系统的Python代码,它连接到MySQL数据库并允许用户添加、删除和更新图书信息:
```python
import mysql.connector
# 连接到MySQL数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="library"
)
# 创建游标对象
mycursor = mydb.cursor()
# 定义函数以添加新书
def add_book(title, author, year, isbn):
sql = "INSERT INTO books (title, author, year, isbn) VALUES (%s, %s, %s, %s)"
values = (title, author, year, isbn)
mycursor.execute(sql, values)
mydb.commit()
print("书籍已成功添加!")
# 定义函数以查找书籍
def search_book(title="", author="", year="", isbn=""):
sql = "SELECT * FROM books WHERE title=%s OR author=%s OR year=%s OR isbn=%s"
values = (title, author, year, isbn)
mycursor.execute(sql, values)
results = mycursor.fetchall()
return results
# 定义函数以更新书籍信息
def update_book(id, title, author, year, isbn):
sql = "UPDATE books SET title=%s, author=%s, year=%s, isbn=%s WHERE id=%s"
values = (title, author, year, isbn, id)
mycursor.execute(sql, values)
mydb.commit()
print("书籍信息已成功更新!")
# 定义函数以删除书籍
def delete_book(id):
sql = "DELETE FROM books WHERE id=%s"
values = (id,)
mycursor.execute(sql, values)
mydb.commit()
print("书籍已成功删除!")
# 添加书籍
add_book("Python入门", "张三", "2020", "1234567890")
# 查找书籍
results = search_book(author="张三")
for result in results:
print(result)
# 更新书籍信息
update_book(1, "Python基础", "李四", "2021", "0987654321")
# 删除书籍
delete_book(1)
```
在上面的代码中,我们首先连接到名为“library”的MySQL数据库。然后,我们定义了四个函数,分别用于添加、查找、更新和删除图书信息。每个函数都使用MySQL连接来执行相应的SQL查询。最后,我们测试了每个函数并输出了结果。请注意,在上面的代码中,我们使用了MySQL连接器模块,该模块需要通过pip安装。
用Python和MySQL写一个图书管理系统
好的,下面是一个简单的图书管理系统的代码,使用Python和MySQL数据库:
```python
import pymysql
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='library', charset='utf8mb4')
cursor = conn.cursor()
# 创建图书表
create_table_sql = '''
CREATE TABLE IF NOT EXISTS books (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
publish_date DATE NOT NULL,
price FLOAT NOT NULL,
number INT(11) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
'''
cursor.execute(create_table_sql)
# 添加图书信息
def add_book():
name = input('请输入书名:')
author = input('请输入作者:')
publish_date = input('请输入出版日期(yyyy-mm-dd):')
price = float(input('请输入价格:'))
number = int(input('请输入数量:'))
insert_sql = '''
INSERT INTO books(name, author, publish_date, price, number)
VALUES(%s, %s, %s, %s, %s);
'''
try:
cursor.execute(insert_sql, (name, author, publish_date, price, number))
conn.commit()
print('添加成功!')
except Exception as e:
print('添加失败:', e)
# 查询图书信息
def query_book():
name = input('请输入要查询的书名:')
query_sql = '''
SELECT * FROM books WHERE name=%s;
'''
try:
cursor.execute(query_sql, (name,))
result = cursor.fetchone()
if result:
print('查询结果:', result)
else:
print('没有找到该书!')
except Exception as e:
print('查询失败:', e)
# 删除图书信息
def delete_book():
name = input('请输入要删除的书名:')
delete_sql = '''
DELETE FROM books WHERE name=%s;
'''
try:
cursor.execute(delete_sql, (name,))
conn.commit()
print('删除成功!')
except Exception as e:
print('删除失败:', e)
# 修改图书信息
def update_book():
name = input('请输入要修改的书名:')
update_sql = '''
UPDATE books SET author=%s, publish_date=%s, price=%s, number=%s WHERE name=%s;
'''
try:
author = input('请输入新的作者名:')
publish_date = input('请输入新的出版日期(yyyy-mm-dd):')
price = float(input('请输入新的价格:'))
number = int(input('请输入新的数量:'))
cursor.execute(update_sql, (author, publish_date, price, number, name))
conn.commit()
print('修改成功!')
except Exception as e:
print('修改失败:', e)
# 主函数
def main():
while True:
print('''
1. 添加图书信息
2. 查询图书信息
3. 删除图书信息
4. 修改图书信息
5. 退出系统
''')
choice = input('请输入操作编号:')
if choice == '1':
add_book()
elif choice == '2':
query_book()
elif choice == '3':
delete_book()
elif choice == '4':
update_book()
elif choice == '5':
print('谢谢使用,再见!')
break
else:
print('输入有误,请重新输入!')
# 执行主函数
if __name__ == '__main__':
main()
# 关闭连接
cursor.close()
conn.close()
```
这个系统包括四个基本功能:添加图书信息、查询图书信息、删除图书信息、修改图书信息,以及一个退出系统的选项。在MySQL数据库中创建了一个`books`表,用于存储图书信息。每个图书包括名称、作者、出版日期、价格和数量五个属性。用户在进行各种操作时,需要输入相关的信息,程序会根据用户的选择执行相应的操作。
阅读全文