这是一个为瑜伽老师设计的轻量级学员管理工具,使用 SQLite 本地数据库存储,支持:
安装后必须先配置邮箱,否则无法发送课时记录邮件。
使用交互式配置:
python
from config import prompt_email_config
prompt_email_config()
或手动配置:
python
from config import set_email_config
set_email_config(
smtp_server="smtp.qq.com",
smtp_port=587,
email="your_email@qq.com",
password="your_auth_code",
use_ssl=True
)
常用邮箱SMTP设置参考:
smtp.gmail.com, 端口 587(需开启应用专用密码)smtp.qq.com, 端口 587(需使用授权码而非登录密码)smtp.163.com, 端口 25smtp.office365.com, 端口 587运行主程序:
bash
python main.py
首次运行会提示配置邮箱。之后进入交互式菜单:
python
from manager import YogaManager
manager = YogaManager()
# 添加学员
sid = manager.add_student("张三", phone="13800138000", wechat="zhangsan123")
# 添加包课时课程(线下课,50课时)
cid = manager.add_course(
student_id=sid,
course_type="offline", # 或 "online"
package_type="hourly", # 或 "yearly"
total_hours=50,
remaining_hours=50,
price=5000.00
)
# 扣除课时(每次上完课调用)
result = manager.deduct_hours(course_id=cid, hours=1, notes="哈他瑜伽基础课")
# 扣除成功后会自动发送邮件记录
# 添加包年课程
manager.add_course(
student_id=sid,
course_type="online",
package_type="yearly",
start_date="2026-01-01",
end_date="2026-12-31",
price=8000.00
)
# 查看学员详情
manager.show_student(sid)
# 发送完整报表
manager.send_full_report()
SQLite 数据库文件: yoga_students.db
students 表 - 学员基本信息
字段类型说明idINTEGER主键nameTEXT姓名phoneTEXT电话wechatTEXT微信notesTEXT备注created_atTEXT创建时间
student_courses 表 - 学员课程信息
字段类型说明idINTEGER主键student_idINTEGER学员ID(外键)course_typeTEXTonline/offlinepackage_typeTEXTyearly/hourlytotal_hoursINTEGER总课时(包课时)remaining_hoursINTEGER剩余课时(包课时)start_dateTEXT开始日期(包年)end_dateTEXT结束日期(包年)priceREAL价格
deduction_logs 表 - 课时扣除日志
字段类型说明idINTEGER主键student_idINTEGER学员IDcourse_idINTEGER课程IDdeducted_hoursINTEGER扣除课时数remaining_beforeINTEGER扣除前剩余remaining_afterINTEGER扣除后剩余class_dateTEXT上课日期notesTEXT备注created_atTEXT记录时间
text
yoga_student_manager/
├── SKILL.md # 本说明文件
├── main.py # 命令行入口
├── manager.py # 核心管理类
├── database.py # 数据库模型
├── email_sender.py # 邮件发送模块
├── config.py # 配置管理
├── yoga_students.db # SQLite数据库(自动创建)
└── config.json # 邮箱配置(自动创建)