图书销售管理系统python
时间: 2024-12-26 09:20:52 浏览: 14
### 使用 Python 开发图书销售管理系统
#### 项目结构设计
构建一个简单的图书销售管理系统,首先需要规划项目的文件夹和模块布局。通常情况下,会有一个主程序入口以及多个功能模块来处理不同的业务逻辑。
#### 数据库设置
为了存储书籍信息、客户订单等数据,可以采用SQLite数据库作为后台支持[^1]。它轻量级且易于集成到Python应用程序中。
```sql
CREATE TABLE books (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author TEXT NOT NULL,
price REAL NOT NULL);
```
#### 主要功能实现
##### 添加新书
通过定义函数`add_book()`接收参数并将其保存至数据库表内完成新增操作。
```python
import sqlite3
def add_book(title, author, price):
conn = sqlite3.connect('bookstore.db')
c = conn.cursor()
c.execute("INSERT INTO books (title, author, price) VALUES (?, ?, ?)", (title, author, price))
conn.commit()
conn.close()
```
##### 查询库存
提供按条件筛选的功能以便于管理员查看当前可售商品列表。
```python
def search_books(keyword=''):
conn = sqlite3.connect('bookstore.db')
c = conn.cursor()
query = "SELECT * FROM books WHERE title LIKE ? OR author LIKE ?"
result = c.execute(query, ('%' + keyword + '%', '%' + keyword + '%')).fetchall()
conn.close()
return result
```
##### 销售记录维护
每当卖出一本书籍时更新其对应的销量字段,并创建一条新的交易流水用于后续统计分析。
```python
def sell_book(book_id, quantity=1):
conn = sqlite3.connect('bookstore.db')
c = conn.cursor()
# 更新库存数量
update_query = "UPDATE books SET stock = stock - ? WHERE id=? AND stock >=?"
c.execute(update_query,(quantity, book_id, quantity))
# 插入销售记录
insert_sale_record = """INSERT INTO sales (date_time, book_id, amount)
SELECT datetime('now'),?,?"""
c.execute(insert_sale_record,[book_id, quantity])
conn.commit()
conn.close()
```
阅读全文