Python 异步 Web 框架 Fastapi 怎么样,已经够成熟到商业项目了吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
yuexuan
V2EX    Python

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

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

    @frostming #7 这回是来吐槽它更新有点频繁了, 毕竟还不是 1.0 版本, 平时用上它也是找个协程环境的框架使. 顺便问个小问题, 那个 pdm 昨天更新用了下, pdm add xxx 的时候如果依赖库特别多, 偶尔一个库会因为 pypi 官网连接超时导致整个下载安装过程 crash, 下次安装又成从头开始了, 除了一个个安装依赖, 有什么办法加点超时重试么
    frostming
        13
    frostming  
       2020-03-20 09:17:50 +08:00   1
    @ClericPy 你说的应该是依赖解析(Resolving)的过程,现在安装已经是并行的了(还没发版)
    MrZok
        14
    MrZok  
       2020-03-20 10:09:22 +08:00
    上次遇到一个问题,在他们官网上查了半天,用上面的解决方案也不能解决问题,结果是因为版本更新了,官网上的示例已经不能正常使用 0.0
    yuexuan
        15
    yuexuan  
    OP
       2020-03-20 12:52:36 +08:00
    @ClericPy 这个框架使用感觉如何,配套的第三方库好找吗, Python Web 圈有没有希望诞生一个老大哥,就向 java 中 Spring 系列, 感觉现在 web 框架都是各自为战, 真的挺看好 fastapi 这框架的,star 数都有 11k 了
    yuexuan
        16
    yuexuan  
    OP
       2020-03-20 13:10:09 +08:00
    决定了,准备把一下小项目用 fastapi 来写一下,自己来亲自体验一下这个框架
    ClericPy
        17
    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
        18
    hidaris  
       2020-03-22 23:00:07 +08:00
    我这边线上的物联网项目有使用到 starlette,目前遇到的问题主要是文档不全,所以得经常翻源码…
    formaxin
        19
    formaxin  
       2020-03-25 16:33:35 +08:00
    两个项目上正在用,只写 api 没遇到过 bug
    hushao
        20
    hushao  
       2020-04-09 18:04:55 +08:00
    主体大方向上没有毛病,细节有待完善,并且文档虽然比较丰富但是不算全,纯写 api 的话,现在可以使用了。

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

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

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

    大家有啥意见么。
    holinhot
        21
    holinhot  
       2020-05-05 08:37:56 +08:00
    di94sh
        22
    di94sh  
       2020-05-28 16:52:56 +08:00
    @holinhot #21 这货不算是 orm, 就 SQLAlchemy Core 构造完查询语句 往数据库驱动里一仍, 返回的连个对象都不是.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3372 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:41 PVG 12:41 LAX 20:41 JFK 23:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86