当前位置: 首页 > news >正文

基于原生JavaScript前端和 Flask 后端的Todo 应用 - 详解

基于原生JavaScript前端和 Flask 后端的Todo 应用 - 详解

在这里插入图片描述
Demo地址:https://gitcode.com/rmbnetlife/todo-app-js-flask.git
在这里插入图片描述

Python Todo 应用

这是一个使用Python Flask框架开发的简单待办事项(Todo)应用,采用前后端分离架构。本项目实现了待办事项的添加、删除、状态切换等基本功能,并提供了直观的用户界面,适合作为Web开发学习示例或小型团队的任务管理工具。

项目架构

本项目采用经典的前后端分离架构:

项目结构

python-todo-demo/
├── backend/               # Python 后端
│   ├── app.py            # Flask 主程序 - RESTful API实现
│   ├── requirements.txt  # 依赖列表
│   └── todos.json        # 数据存储文件(替代数据库)
│
└── frontend/             # 静态前端
├── index.html        # 前端页面 - 包含HTML结构和JavaScript逻辑
└── styles.css        # 样式文件 - 美化界面的CSS样式

设计逻辑

后端设计

后端采用Flask框架实现RESTful API,主要设计考虑:

  1. 轻量级数据存储:使用JSON文件存储数据,避免数据库配置,简化部署
  2. RESTful API设计:遵循REST原则,使用适当的HTTP方法和状态码
  3. 跨域支持:通过Flask-CORS启用CORS,支持前后端分离开发
  4. 错误处理:适当的错误状态码和消息返回
  5. ID生成策略:使用最大ID递增策略,确保ID唯一性,避免ID冲突

前端设计

前端采用原生JavaScript实现,主要设计考虑:

  1. 分类显示:将待办事项分为"未完成"和"已完成"两个区域,提高用户体验
  2. 响应式交互:支持点击切换状态、删除操作,以及回车键添加新任务
  3. 视觉反馈:通过样式变化(如删除线、颜色变化)提供明确的任务状态反馈
  4. 简洁界面:采用卡片式设计和柔和配色,提供舒适的视觉体验

功能特点

安装部署

环境要求

1. 克隆项目

git clone <项目仓库URL>cd python-todo-app

2. 安装依赖

cd backend
pip install -r requirements.txt

这将安装以下依赖:

  • Flask - Web框架
  • Flask-CORS - 跨域资源共享支持

3. 启动后端服务

cd backend
python app.py

服务器将在 http://localhost:5000 运行,并在控制台输出调试信息

4. 访问前端页面

有两种方式可以访问前端页面:

方式一:直接打开文件(简单但可能受到CORS限制)

方式二:使用简单的HTTP服务器(推荐)

# 如果安装了Python,可以使用内置的HTTP服务器
cd frontend
python -m http.server 8080

然后访问 http://localhost:8080

API接口详解

获取所有待办事项

添加新的待办事项

删除指定待办事项

切换待办事项的完成状态

数据存储

项目使用JSON文件(todos.json)作为数据存储,格式如下:

[
{
"id": 1
,
"text": "示例任务1"
,
"completed": false
}
,
{
"id": 2
,
"text": "示例任务2"
,
"completed": true
}
]

技术栈

常见问题

Q: 如何修改服务器端口?

A: 在backend/app.py文件的最后一行修改port参数:

app.run(port=你想要的端口号, debug=True
)

Q: 如何解决CORS(跨域)问题?

A: 项目已通过Flask-CORS处理了跨域问题。如果仍有问题,确保前端请求的URL与后端服务器地址匹配。

Q: 如何备份数据?

A: 定期复制backend/todos.json文件即可备份所有数据。

未来改进方向