Python 异步 Web 框架 Fastapi 怎么样,已经够成熟到商业项目了吗

2020-03-19 16:54:15 +08:00
 yuexuan
自动 OpenAPI 验证和文档编制, 特别是自动生成接口文档,集成了 swagger, 这个真的太香了, 有人用这个框架到公司项目上了吗
9543 次点击
所在节点    Python
22 条回复
676529483
2020-03-19 17:23:31 +08:00
我这边没有,没有 cbv、有 bug 没精力解决,加上比较新,很难得到公司认可
triangle111
2020-03-19 17:28:13 +08:00
那些四五年的一般都用 Django\Flask 吧,只要招聘岗位需要 Fastapi 的话,应该还是回去学习的
ClericPy
2020-03-19 17:28:47 +08:00
starlette 足够稳定, fastapi 更新还比较频繁, 看他们官网上, 用 fastapi 的那几个, 多数还是内部产品时候用...
不过得看项目类型吧, golang 那么新兴, gin 就算用户多, 也没到一统江湖的地步, 不也一样上大项目
wzw
2020-03-19 17:28:57 +08:00
已用
janxin
2020-03-19 17:32:10 +08:00
@ClericPy 基本上一统该语言江湖的框架比较少,很多语言都是至少有两个主流框架在使用的
yuexuan
2020-03-19 18:16:30 +08:00
@wzw 使用感觉怎么样呀,稳不稳定,有没有一些神奇的 bug
frostming
2020-03-19 22:18:16 +08:00
头号 Fastapi 吹你好,果然你在这
@ClericPy
jenlors
2020-03-19 22:46:38 +08:00
fastapi + tortoise-orm 还是不错的,公司项目正在使用,不过 tortoise-orm 目前还不是很完善,然而也没有更好的 async orm 了,需要自己踩一踩坑。
YUX
2020-03-19 22:53:01 +08:00
fastapi + tortoise-orm 确实是一个不错的组合
也可以 aiohttp + aiomysql, 这个组合坑少
janxin
2020-03-19 23:17:07 +08:00
ponyorm 我觉得很好啊,写法很 pythonic
iConnect
2020-03-20 00:13:03 +08:00
一方面用 flask 写 api 也很快,另外有些周边库还没更上 py3.6,用 fastapi 就怕工具不够用,先等等再说
ClericPy
2020-03-20 08:38:11 +08:00
@janxin #5
嗯, 就是想到 Spring 生态那么好的例子太少了

@frostming #7 这回是来吐槽它更新有点频繁了, 毕竟还不是 1.0 版本, 平时用上它也是找个协程环境的框架使. 顺便问个小问题, 那个 pdm 昨天更新用了下, pdm add xxx 的时候如果依赖库特别多, 偶尔一个库会因为 pypi 官网连接超时导致整个下载安装过程 crash, 下次安装又成从头开始了, 除了一个个安装依赖, 有什么办法加点超时重试么
frostming
2020-03-20 09:17:50 +08:00
@ClericPy 你说的应该是依赖解析(Resolving)的过程,现在安装已经是并行的了(还没发版)
MrZok
2020-03-20 10:09:22 +08:00
上次遇到一个问题,在他们官网上查了半天,用上面的解决方案也不能解决问题,结果是因为版本更新了,官网上的示例已经不能正常使用 0.0
yuexuan
2020-03-20 12:52:36 +08:00
@ClericPy 这个框架使用感觉如何,配套的第三方库好找吗, Python Web 圈有没有希望诞生一个老大哥,就向 java 中 Spring 系列, 感觉现在 web 框架都是各自为战, 真的挺看好 fastapi 这框架的,star 数都有 11k 了
yuexuan
2020-03-20 13:10:09 +08:00
决定了,准备把一下小项目用 fastapi 来写一下,自己来亲自体验一下这个框架
ClericPy
2020-03-20 16:13:54 +08:00
@yuexuan #15 小项目没有问题, 不过更新还是有点频繁, 就像楼上说的文档过期问题我就遇到至少 3 次(不光 fastapi), 然后 /doc 在嵌入 sub app 的时候会访问 /openapi.json 而忽略前缀这种 issue 这两天刚遇到, 简而言之, 还是很多小毛病, 毕竟诞生不久, issue 还要人修, 功能层面各种新 feature 层出不穷, 稳定性还是有点玄乎, 但是内核层面目前来说没有什么大毛病

大项目在线上环境反正是关闭 /doc 的, 也没有什么大问题, 先体验一下吧, 我是搭配 databases 兼容多种数据库(底层用 sqlalchemy 做 orm 相关, 虽然大部分也是在用原生 sql), 配套的协程库, 有 aiolibs 和 encode 两个组织背书, 几乎遇不到我找不着库的情况了, 就算遇到了, 也是一句 run_in_executor 先跑着. 这框架真用了以后发现, 最舒服的地方就是: 以前的框架为什么不这么设计, 太神奇了. 里面很多设计给人眼前一亮的感觉, 上次这种感觉是: Bottle 的装饰器路由 和 线程隔离的全局 request 变量.
之前就半个月撸了一个体验了一把, 不过代码让我写刺了(过渡设计, 最后乱套了), 就不推荐了
hidaris
2020-03-22 23:00:07 +08:00
我这边线上的物联网项目有使用到 starlette,目前遇到的问题主要是文档不全,所以得经常翻源码…
formaxin
2020-03-25 16:33:35 +08:00
两个项目上正在用,只写 api 没遇到过 bug
hushao
2020-04-09 18:04:55 +08:00
主体大方向上没有毛病,细节有待完善,并且文档虽然比较丰富但是不算全,纯写 api 的话,现在可以使用了。

现有的 flask 项目原本打算看能不能转,但一看转后有些地方比 falsk 麻烦的多,就作罢。

后面打算新开项目试一下,但是看好几次文档感觉有些部分还是很迷,现在状态是想用但是没什么特别惊艳的点让我下定决心一定要用。

现在反而内心更倾向 Django...,但 django 小项目确实太重了😢,并且写 api 的话有些用不到的设置项你还必须要设置...

大家有啥意见么。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/654309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX