Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

👑 [Feature Request]从 Flask 迁移到 FastAPI #26

Open
linkedlist771 opened this issue Jul 11, 2024 · 6 comments
Open

👑 [Feature Request]从 Flask 迁移到 FastAPI #26

linkedlist771 opened this issue Jul 11, 2024 · 6 comments
Assignees
Labels
enhancement New feature or request

Comments

@linkedlist771
Copy link

🥰 需求描述

将现有的 Flask 后端迁移到 FastAPI 框架。这个变更的目的是利用 FastAPI 的优势,如:

  • 更快的性能
  • 自动 API 文档生成
  • 更强大的类型提示和验证
  • 异步支持
  • 现代化的 Python 语法

🧐 解决方案

  1. 评估当前 Flask 应用结构
  2. 设计 FastAPI 迁移计划
  3. 逐步将 Flask 路由转换为 FastAPI 路径操作
  4. 利用 Pydantic 模型进行数据验证
  5. 实现依赖注入系统
  6. 配置 FastAPI 的异步特性(如果需要)
  7. 更新数据库连接(如果适用)
  8. 迁移测试套件
  9. 更新部署流程
  10. 进行性能测试和优化
  11. 团队协作:利用您提供的帮助,分配任务并定期同步进度
graph TD
    A[评估当前Flask应用] --> B[设计FastAPI迁移计划]
    B --> C[任务分配和团队协作]
    C --> D[转换路由]
    D --> E[实现Pydantic模型]
    E --> F[配置依赖注入]
    F --> G[启用异步特性]
    G --> H[更新数据库连接]
    H --> I[迁移测试]
    I --> J[更新部署流程]
    J --> K[性能测试和优化]
    K --> L[最终审查和上线]
    C -.-> M[定期进度同步]
    M -.-> C
Loading

🚑 其他信息

在进行迁移时,需要注意以下几点:

  1. 确保团队成员熟悉 FastAPI 的概念和最佳实践。
  2. 考虑是否需要保持向后兼容性,或者是否可以完全重写 API。
  3. 评估现有的第三方扩展是否有 FastAPI 等效替代品。
  4. 更新 API 文档,利用 FastAPI 的自动文档生成功能。

PS: 如果maintainer需要,我可以提供帮助, 我对fastapi比较熟悉

@yuruotong1
Copy link
Owner

但感觉迁移的话对用户影响不大

@phil616
Copy link

phil616 commented Jul 11, 2024

如果这个迁移到FastAPI的方案通过,我也可加入

phil616 added a commit to phil616/autoMate that referenced this issue Jul 12, 2024
使用FastAPI替代Flask的演示,但没有达到工程化的应用的标准
如果FastAPI技术可行,那么需要增加数据验证,请求-相应模型等

可以参考yuruotong1#26
@yuruotong1
Copy link
Owner

如果这个迁移到FastAPI的方案通过,我也可加入

有几个问题需要给出答案:

  1. 这么做能为用户带来什么更好的体验?
  2. 团队成员是否更熟悉fastapi?相比于flask来说?
  3. 对已有项目变更是否会引入更大的风险?

@phil616
Copy link

phil616 commented Jul 12, 2024

如果这个迁移到FastAPI的方案通过,我也可加入

如果这个迁移到FastAPI的方案通过,我也可加入

有几个问题需要给出答案:

  1. 这么做能为用户带来什么更好的体验?
  2. 团队成员是否更熟悉fastapi?相比于flask来说?
  3. 对已有项目变更是否会引入更大的风险?
  1. 首先对于用户的体验而言是无感的,用户感知不到后端的处理过程。
  2. flask框架更加侧重于Web服务,大模型领域开发者使用FastAPI更加常见。
  3. flask与FastAPI均属于Python Web比较成熟的应用,风险暂时无法评估。

若审核团队无法确定技术选型,我建议在原型开发完成后形成接口文档,flask和FastAPI同时进行开发,根据语言无关的接口文档来进行稳定性测试等,依据相关数据再进行评估。

@yuruotong1
Copy link
Owner

如果这个迁移到FastAPI的方案通过,我也可加入

如果这个迁移到FastAPI的方案通过,我也可加入

有几个问题需要给出答案:

  1. 这么做能为用户带来什么更好的体验?
  2. 团队成员是否更熟悉fastapi?相比于flask来说?
  3. 对已有项目变更是否会引入更大的风险?
  1. 首先对于用户的体验而言是无感的,用户感知不到后端的处理过程。
  2. flask框架更加侧重于Web服务,大模型领域开发者使用FastAPI更加常见。
  3. flask与FastAPI均属于Python Web比较成熟的应用,风险暂时无法评估。

若审核团队无法确定技术选型,我建议在原型开发完成后形成接口文档,flask和FastAPI同时进行开发,根据语言无关的接口文档来进行稳定性测试等,依据相关数据再进行评估。

没问题,我们先解决用户关心的几个问题,然后再来考虑框架选型。

@yuruotong1 yuruotong1 added the enhancement New feature or request label Jul 12, 2024
@21jhf
Copy link

21jhf commented Jul 31, 2024

支持迁移到fastAPI,项目前期迁移,风险不大

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants