- 此项目虽然看起来简单,实际上,修改成自己喜欢的样子,也是费时间的。
- 别人都搞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 包管理器

安装步骤

  1. 克隆项目

    git clone [项目地址]
    cd flask_todo_app
    
  2. 安装依赖

    pip install -r requirements.txt
    
  3. 初始化数据库

    python init_db.py
    
  4. 启动应用

    python app.py
    

    或者直接运行批处理文件:

    run_flask_todo.bat
    
  5. 访问应用
    打开浏览器访问 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> - 导出指定日期任务

使用场景

个人任务管理

  • 日常工作任务规划
  • 学习计划制定
  • 生活事务提醒

团队协作

  • 项目进度跟踪
  • 会议任务分配
  • 工作汇报整理

习惯养成

  • 每日目标设定
  • 习惯打卡记录
  • 进度可视化

特色亮点

  1. 轻量级部署:无需复杂配置,开箱即用
  2. 数据持久化:本地 SQLite 数据库,数据安全可靠
  3. 导出功能:支持 Markdown 格式导出,便于分享和存档
  4. 时间追踪:自动记录任务时间线,便于效率分析
  5. 界面友好:简洁美观的设计,专注用户体验

扩展可能

  • 支持任务分类和标签
  • 添加任务优先级设置
  • 集成日历视图
  • 支持团队协作功能
  • 移动端 App 开发
  • 云端数据同步

总结

这个 Flask Todo 应用虽然功能简洁,但涵盖了任务管理的核心需求。它不仅是一个实用的工具,也是学习 Flask 全栈开发的优秀示例。无论是个人使用还是作为学习项目,都具有很好的实用价值。

项目代码结构清晰,易于理解和扩展,是 Web 开发初学者和有经验开发者的理想选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92861.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92861.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92861.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4麦 360度定位

要在 ESP32 上用 4 个麦克风实现 360 声源定位&#xff0c;通常思路是通过 时延估计&#xff08;TDOA&#xff09; 几何计算&#xff0c;核心流程&#xff1a;阵列布置将 4 个麦克风等间距布置成正方形&#xff08;或圆形&#xff09;。记阵列中心为原点&#xff0c;麦克风编号…

使用yolov10模型检测视频中出现的行人,并保存为图片

一、使用yolov10模型检测视频中出现的行人&#xff0c;并保存为图片&#xff0c;detect_person.py代码如下&#xff1a;from ultralytics import YOLOv10 import glob import os import cv2 import argparsedef detect_person(videoPath, savePath):if not os.path.exists(save…

现在希望用git将本地文件crawler目录下的文件更新到远程仓库指定crawler目录下,命名相同的文件本地文件将其覆盖

git checkout main git pull origin main $source “D:\黑马大数据学习\crawler” $dest Join-Path (Get-Location) “crawler” if (-not (Test-Path $dest)) { New-Item -ItemType Directory -Path $dest | Out-Null } Copy-Item -Path $source* -Destination $dest -Recur…

网络调制技术对比表

&#x1f4ca; 网络调制技术全维度对比表​调制技术​​简称​​频谱效率​​抗噪性​​功率效率​​复杂度​​关键特性​​典型应用场景​​幅度键控​ASK低差高低/低电路简单&#xff0c;易受干扰遥控器、光通信(OOK)​频移键控​FSK低-中中中中/中抗噪较好&#xff0c;频谱…

优化 Elasticsearch JVM 参数配置指南

一、概述 Elasticsearch 是基于 JVM 的搜索和分析引擎。JVM 参数的合理配置直接影响着 Elasticsearch 的性能和稳定性。尽管 Elasticsearch 已经提供了默认的 JVM 设置&#xff0c;但在某些特定场景下&#xff0c;我们可能需要进行适当的调整和优化。 本文将详细讲述如何安全、…

Python, Go 开发如何进入心流状态APP

要开发一款基于Python和Go语言、帮助用户进入“心流”状态&#xff08;高度专注、高效愉悦的心理状态&#xff09;的应用&#xff0c;需结合两种语言的技术优势&#xff08;Go的高并发与性能、Python的灵活性与AI生态&#xff09;及心流触发机制&#xff08;清晰目标、即时反馈…

一文详解手机WiFi模块与连接

目录 1 硬件模块 1.1 Wifi射频模 1.2 电源管理模块 2 软件与协议栈 2.1 系统服务层 2.2 认证与协议处理 3 连接流程 3.1 开启WiFi与扫描 3.2 选择网络与认证 3.3 连接与IP分配 4 特殊连接方式 4.1 WPS快速连接 4.2 热点模式&#xff08;AP模式&#xff09; 4.3 U…

Java 网络编程详解:从基础到实战,彻底掌握 TCP/UDP、Socket、HTTP 网络通信

作为一名 Java 开发工程师&#xff0c;你一定在实际开发中遇到过需要与远程服务器通信、实现客户端/服务端架构、处理 HTTP 请求、构建分布式系统等场景。这时&#xff0c;Java 网络编程&#xff08;Java Networking&#xff09; 就成为你必须掌握的核心技能之一。Java 提供了丰…

Java面试题(中等)

1. 计算机网络传输层有哪些协议&#xff1f;分别适用于什么场景&#xff1f;TCP协议(传输控制协议)​&#xff1a;面向连接、可靠传输&#xff0c;流量控制、拥塞控制。适用于要求数据完整性的场景&#xff0c;如文件传输、网页浏览、电子邮件等。UDP协议 (用户数据报协议)​&a…

Apache 消息队列分布式架构与原理

消息队列 基本概念 定义 消息队列&#xff08;Message Queue, MQ&#xff09;是一种分布式中间件&#xff0c;通过异步通信、消息暂存和解耦生产消费双方的机制&#xff0c;提供消息的顺序性保证、可靠投递和流量控制能力&#xff0c;广泛应用于微服务解耦、大数据流处理等场景…

ModernBERT如何突破BERT局限?情感分析全流程解析

自2018年推出以来&#xff0c;BERT 彻底改变了自然语言处理领域。它在情感分析、问答、语言推理等任务中表现优异。借助双向训练和基于Transformer的自注意力机制&#xff0c;BERT 开创了理解文本中单词关系的新范式。然而&#xff0c;尽管成绩斐然&#xff0c;BERT 仍存在局限…

股票Level2逐笔成交及十档订单簿分钟级Tick历史行情数据详细解析

本地股票数据处理与分析实战指南 在量化投资与金融数据分析领域&#xff0c;高效处理本地存储的股票数据是核心能力之一。本文将从数据类型定义、解析流程及实际应用角度&#xff0c;系统介绍如何基于CSV文件管理股票分钟数据、高频Tick数据、逐笔数据、Level2历史行情等多样化…

面向互联网2C业务的分布式类Manus Java框架

本文介绍了阿里巴巴推出的分布式类ManusAgent框架——ali-langengine-dflow&#xff0c;旨在解决现有Agent架构在互联网2C业务场景中的局限性。文章从背景出发&#xff0c;分析了当前主流Agent架构&#xff08;如Manus、字节TARS、AutoGLM&#xff09;存在的问题&#xff0c;如…

Java-82 深入浅出 MySQL 内部架构:服务层、存储引擎与文件系统全覆盖

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; AI炼丹日志-30-新发布【1T 万亿】参数量大模型&#xff01;Kim…

开发避坑短篇(6):Vue+Element UI 深度选择器实现表单元素精准对齐的技术实践

需求 el-form 表单的el-input和el-select默认宽度度不一致&#xff0c;导致不对齐&#xff0c;如下图。那么如何设置让el-input和el-select的宽度度一致并对齐&#xff1f;<el-form class"page-form" :model"addForm" :rules"rules" :disable…

rust-参考与借用

参考与借用 在清单4-5中的元组代码的问题在于&#xff0c;我们必须将String返回给调用函数&#xff0c;这样我们才能在调用calculate_length之后继续使用String&#xff0c;因为String已经被移动到了calculate_length中。相反&#xff0c;我们可以提供一个对String值的引用。引…

深入解析HDFS Federation:如何有效解决单NameNode瓶颈问题

HDFS Federation简介与背景在Hadoop分布式文件系统&#xff08;HDFS&#xff09;的经典架构中&#xff0c;NameNode作为核心组件承担着整个文件系统的元数据管理职责。这一设计虽然简洁高效&#xff0c;但随着数据规模的爆炸式增长&#xff0c;单NameNode架构逐渐暴露出难以克服…

为什么选择EasyGBS?

作为集 算法仓、算力设备接入、视频云平台 于一体的综合性智能安防监控平台&#xff0c;EasyGBS有哪些优势是您的必选理由呢&#xff1f;一、设备与协议的兼容性EasyGBS不挑设备品牌型号。只要支持GB28181、RTSP、ONVIF、RTMP标准协议里的任一种&#xff0c;就能将视频接入。但…

【形态学变换】——图像预处理(OpenCV)

目录 1 核 2 腐蚀 3 膨胀 4 开运算 5 闭运算 6 礼帽运算 7 黑帽运算 8 形态学梯度 形态学变换是一种基于形状的简单变换&#xff0c;处理对象是二值化后的图像。有两个输入&#xff1a;原图像和核&#xff0c;一个输出&#xff1a;形态学变换后的图像。基本操作有以下四…

一次“非法指令”(SIGILL)问题的完整调试过程:CPU指令集兼容性探秘

一次"非法指令"问题的完整调试过程&#xff1a;CPU指令集兼容性探秘一、问题概述二、问题现象与初步分析1. 环境与现象2. 官方文档的线索3. 重现问题4. 怀疑方向&#xff1a;CPU指令兼容性5. 关键发现&#xff1a;AVX512指令三、详细调试过程1. 搭建调试环境 (KVM虚拟…