Python SQLite 简易记账本开发教程
随着经济的发展,个人财务管理变得越来越重要。记账本作为一种传统的财务管理工具,可以帮助我们记录收支情况,了解自己的财务状况。本文将使用 Python 语言和 SQLite 数据库,开发一个简易的记账本应用程序,实现收支记录和月度统计功能。
环境准备
在开始编写代码之前,我们需要准备以下环境:
1. Python 3.x 版本
2. SQLite 数据库
3. 一个文本编辑器(如 Visual Studio Code、Sublime Text 等)
数据库设计
我们需要设计数据库的结构。在这个简易记账本中,我们将创建两个表:`income`(收入记录表)和`expense`(支出记录表)。
sql
CREATE TABLE income (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL,
amount REAL NOT NULL,
description TEXT
);
CREATE TABLE expense (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL,
amount REAL NOT NULL,
description TEXT
);
Python 代码编写
1. 导入模块
我们需要导入必要的模块。
python
import sqlite3
from datetime import datetime
2. 连接数据库
接下来,我们连接到 SQLite 数据库。
python
conn = sqlite3.connect('account_book.db')
cursor = conn.cursor()
3. 创建表
如果数据库中还没有创建表,我们可以使用以下代码创建表。
python
cursor.execute('''CREATE TABLE IF NOT EXISTS income (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL,
amount REAL NOT NULL,
description TEXT
)''')
cursor.execute('''CREATE TABLE IF NOT EXISTS expense (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL,
amount REAL NOT NULL,
description TEXT
)''')
4. 添加记录
为了添加收入和支出记录,我们需要编写以下函数。
python
def add_income(date, amount, description):
cursor.execute('INSERT INTO income (date, amount, description) VALUES (?, ?, ?)',
(date, amount, description))
conn.commit()
def add_expense(date, amount, description):
cursor.execute('INSERT INTO expense (date, amount, description) VALUES (?, ?, ?)',
(date, amount, description))
conn.commit()
5. 查询记录
为了查询记录,我们可以编写以下函数。
python
def get_records(table_name, start_date, end_date):
cursor.execute(f'SELECT FROM {table_name} WHERE date BETWEEN ? AND ? ORDER BY date',
(start_date, end_date))
return cursor.fetchall()
6. 月度统计
为了实现月度统计功能,我们可以编写以下函数。
python
def monthly_statistics(year, month):
cursor.execute(f'SELECT SUM(amount) FROM income WHERE strftime("%Y-%m", date) = ?',
(f"{year}-{month:02d}",))
income_total = cursor.fetchone()[0] or 0
cursor.execute(f'SELECT SUM(amount) FROM expense WHERE strftime("%Y-%m", date) = ?',
(f"{year}-{month:02d}",))
expense_total = cursor.fetchone()[0] or 0
return income_total, expense_total
7. 主程序
我们需要编写主程序,以便用户可以添加记录、查询记录和查看月度统计。
python
def main():
while True:
print("1. 添加收入")
print("2. 添加支出")
print("3. 查询记录")
print("4. 月度统计")
print("5. 退出")
choice = input("请选择操作:")
if choice == '1':
date = input("请输入日期(格式:YYYY-MM-DD):")
amount = float(input("请输入金额:"))
description = input("请输入描述:")
add_income(date, amount, description)
print("收入记录已添加。")
elif choice == '2':
date = input("请输入日期(格式:YYYY-MM-DD):")
amount = float(input("请输入金额:"))
description = input("请输入描述:")
add_expense(date, amount, description)
print("支出记录已添加。")
elif choice == '3':
start_date = input("请输入开始日期(格式:YYYY-MM-DD):")
end_date = input("请输入结束日期(格式:YYYY-MM-DD):")
records = get_records('income', start_date, end_date)
print("收入记录:")
for record in records:
print(record)
records = get_records('expense', start_date, end_date)
print("支出记录:")
for record in records:
print(record)
elif choice == '4':
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
income_total, expense_total = monthly_statistics(year, month)
print(f"{year}年{month}月收入:{income_total}")
print(f"{year}年{month}月支出:{expense_total}")
elif choice == '5':
break
else:
print("无效的选项,请重新选择。")
if __name__ == '__main__':
main()
总结
本文介绍了如何使用 Python 语言和 SQLite 数据库开发一个简易记账本应用程序。通过添加记录、查询记录和月度统计功能,用户可以更好地管理自己的财务。在实际应用中,可以根据需求进一步完善和扩展这个应用程序。
Comments NOTHING