用Python和MySQL写一个图书管理系统
时间: 2024-02-03 07:14:59 浏览: 29
好的,下面是一个简单的图书管理系统的代码,使用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`表,用于存储图书信息。每个图书包括名称、作者、出版日期、价格和数量五个属性。用户在进行各种操作时,需要输入相关的信息,程序会根据用户的选择执行相应的操作。