写个 flask todo app,简洁,实用
- 此项目虽然看起来简单,实际上,修改成自己喜欢的样子,也是费时间的。
- 别人都搞AI 相关的项目,而我还是搞这种基础的东西。不要灰心。
- 积累。不论项目大小,不论难易,只看是否有用。
项目地址: https://github.com/buxuele/flask_todo_app
项目概述
这是一个基于 Flask 框架开发的现代化 Todo 应用,专为个人任务管理而设计。应用采用简洁的界面设计和直观的操作方式,帮助用户高效管理日常任务。
核心功能
📅 按日期管理任务
- 日期导航:左侧边栏显示过去 7 天的日期,方便快速切换查看不同日期的任务
- 智能显示:自动识别"今天"、“昨天”、"明天"等相对日期
- 历史记录:保留历史任务记录,便于回顾和跟踪
✅ 完整的任务操作
- 添加任务:快速添加新任务到当前选中日期
- 完成标记:双击任务内容即可标记完成/未完成状态
- 在线编辑:双击任务可直接编辑内容,支持实时保存
- 删除任务:一键删除不需要的任务
- 时间记录:自动记录任务创建时间和完成时间
📄 导出功能
- Markdown 导出:将指定日期的任务导出为格式化的 Markdown 文件
- 分类整理:导出文件自动将任务分为"待完成"和"已完成"两个部分
- 统计信息:包含任务总数和完成情况统计
🎨 用户体验
- 响应式设计:支持桌面和移动设备访问
- 可折叠侧边栏:节省屏幕空间,专注任务管理
- 美观界面:采用暖色调设计,使用自定义字体,提供舒适的视觉体验
- 快捷操作:支持键盘快捷键,提高操作效率
技术架构
后端技术栈
- Flask:轻量级 Web 框架,提供 RESTful API
- SQLAlchemy:数据库 ORM,管理任务数据
- SQLite:轻量级数据库,存储在
instance/todos.db
前端技术栈
- 原生 JavaScript:无框架依赖,纯净高效
- Bootstrap 5:响应式 UI 组件库
- 自定义 CSS:个性化界面设计
项目结构
flask_todo_app/
├── app.py # Flask 应用主文件
├── routes.py # API 路由定义
├── models.py # 数据模型
├── config.py # 配置文件
├── templates/ # HTML 模板
│ └── index.html # 主页面
├── static/ # 静态资源
├── instance/ # 数据库文件
├── docs/ # 导出的 Markdown 文件
└── requirements.txt # 依赖包列表
快速开始
环境要求
- Python 3.7+
- pip 包管理器
安装步骤
-
克隆项目
git clone [项目地址] cd flask_todo_app
-
安装依赖
pip install -r requirements.txt
-
初始化数据库
python init_db.py
-
启动应用
python app.py
或者直接运行批处理文件:
run_flask_todo.bat
-
访问应用
打开浏览器访问http://localhost:5990
API 接口
应用提供完整的 RESTful API,支持:
GET /api/todos
- 获取任务列表POST /api/todos
- 创建新任务PUT /api/todos/<id>
- 更新任务DELETE /api/todos/<id>
- 删除任务GET /api/todos/export/<date>
- 导出指定日期任务
使用场景
个人任务管理
- 日常工作任务规划
- 学习计划制定
- 生活事务提醒
团队协作
- 项目进度跟踪
- 会议任务分配
- 工作汇报整理
习惯养成
- 每日目标设定
- 习惯打卡记录
- 进度可视化
特色亮点
- 轻量级部署:无需复杂配置,开箱即用
- 数据持久化:本地 SQLite 数据库,数据安全可靠
- 导出功能:支持 Markdown 格式导出,便于分享和存档
- 时间追踪:自动记录任务时间线,便于效率分析
- 界面友好:简洁美观的设计,专注用户体验
扩展可能
- 支持任务分类和标签
- 添加任务优先级设置
- 集成日历视图
- 支持团队协作功能
- 移动端 App 开发
- 云端数据同步
总结
这个 Flask Todo 应用虽然功能简洁,但涵盖了任务管理的核心需求。它不仅是一个实用的工具,也是学习 Flask 全栈开发的优秀示例。无论是个人使用还是作为学习项目,都具有很好的实用价值。
项目代码结构清晰,易于理解和扩展,是 Web 开发初学者和有经验开发者的理想选择。