这个示例展示了一个完整的书籍管理系统 CRUD 功能,包含以下部分:
-
后端实现:
- 使用 FastAPI 框架构建 RESTful API
- 与 MongoDB 异步交互
- 实现了书籍的增删改查操作
- 包含数据验证和错误处理
-
前端实现:
- 使用 Flutter 和 GetX 状态管理
- 实现了书籍列表展示
- 支持添加、编辑和删除书籍
- 包含网络请求和状态管理
使用说明:
- 启动 MongoDB 服务
- 运行 FastAPI 后端:
uvicorn main:app --reload
- 运行 Flutter 应用:
flutter run
确保网络连接正常,前端默认连接本地 8000 端口的 API 服务。
代码具有以下特点:
-
组件化设计:
- 将 UI 拆分为独立的 widget:
BookListScreen
、BookListItem
、BookFormScreen
、BookForm
- 每个 widget 负责单一职责,提高可维护性
- 将 UI 拆分为独立的 widget:
-
关注点分离:
- 数据模型放在
models
目录 - 业务逻辑放在
controllers
目录 - UI 组件放在
widgets
目录
- 数据模型放在
-
减少依赖:
- 各个组件不再依赖于特定的 APP 实现
- 可以在不同项目中复用这些组件
-
代码复用:
BookForm
组件可以在添加和编辑场景中复用BookListItem
负责展示单个书籍项,可以独立使用
使用说明:
- 确保项目结构按照上述文件路径组织
- 运行方式与之前相同:
- 启动 MongoDB 服务
- 运行 FastAPI 后端:
uvicorn main:app --reload
- 运行 Flutter 应用:
flutter run