非常开心。自从几年前,我在 V2EX 发帖获得灵感发布 cool 之后,这是第二个个人捐助来感谢我对开源所做出的贡献的。连夜把两位记录在了我的网站上。第一笔是来自支付宝,我不好挂他支付宝,所以就不放出用户名了。但由于是来自于 cool 的感谢,我猜应该也是 V2EX 上的用户,如果你愿意让我在我的网站关联到你的 GitHub ,请通过那个支付宝账号告诉我。 donate.aber.sh/感动落泪,最近工作忙,代码写的不多。

我是 encode 组织的 member ,在主要在 uvicorn 、starlette 两个仓库比较活跃,有不少 commit 和 review ,也在 httpx 之类的有少量贡献。这次 tiangolo 主要是感谢我对 uvicorn 、starlette 这两个与 fastapi 关联十分密切的仓库做出的贡献。至于我个人的仓库,a2wsgi 算是用户量最大的一个,用于 WSGI 和 ASGI 协议的互转换,对小白用户来解释就是:现在所有在 starlette/fastapi 或者 uvicorn 里跑 flask 、django 都是用的我这个库。其他库,与 fastapi 这次捐助无关,就不多做介绍了。评论区提到的 web 框架 kui.aber.sh/ ,主要用户是我现在的公司新项目和几个朋友。和 fastapi 算竞品,在 V2EX 也发过较多相关帖子就不多说了。除了有很多人体工程的优化以外,相比一众支持类型注释的 web 框架来说最大的优势就是 kui 支持原生 WSGI ,你可以把它跟 gevent 一起用。比起 asyncio 线程池的做法,性能要更好,生态也更好。第一次收到捐助的库 cool 是一个语法糖库,提供了一个优雅的 Python 管道用法,具体可以看 github.com/abersheeran/cool

🎉

你这个头像给我瞬间看傻了,以为被爆头

恭喜

所以你做了什么?

OP 好像是写了一个 Python 实现的 web 框架吧

fastapi 不也是 web 框架么?

OP 可以好好地介绍一下自己,搞不好还能再收获一波

#7 感谢建议。

哭泣~ 撒花!

看完附言感觉还是要重新组织语言,感觉你激动到思维混乱了

排面

我去,刚好去年被 starlette 的一个问题头疼,楼主解答下吗,fastapi 无法在中间件里面获取 request body 和 form ,如果在中间件获取,再次调用会卡住,github issues 里有人也提过,starlette 在去年更新了,将 body 改成了一个缓存,可以在中间件里调用而不会再次调用卡死了,但是我发现 form 表单并没有做缓存处理,还有上面的卡主问题,你知道这部分改动的设计吗,后续还会变动不,虽然官方并不建议在中间件里获取 body

tql

哈哈哈,这几天工作特别忙,所以尽快发完去开会了。

这是 Starlette 的设计理念导致的,我曾经试图解决过,无果,相关的有很多 PR ,大家都在努力,但是目前也依旧有很多问题。fastapi 的中间件先天残废,用 Depends 代替吧。如果你真的很需要中间件功能,可以试试 kui 。

恭喜恭喜

其他语言的 Web 框架也都是这样,需要开发人员自己解决多次获取 Request Body 的情况

很厉害

#17 bottle 或者 django 都是有缓存的,kui 也参考了他们的设计做了缓存。Starlette/fastapi 不能解决它主要是因为,他们想把每个 Route 都做成独立的 ASGI 服务,要兼顾 ASGI 标准,就很难做到缓存 Request Body 。我上面提到的几个框架,都没有这么设计,所以可以做自己的缓存。我个人觉得 Starlette 这么设计是可以的,baize 也大量参考了它的设计,这么做了。但是 fastapi 基于 Starlette 做生产级框架,那不应该让开发人员接触到这么底层的东西。

很感动,太难了,开源

想要看懂 op 的意思,还得用 AI 给我分析了一把....

大佬牛的牛的

#21 哈哈哈,上午急着去开会写的,可能比较乱。本来也不是正式推广什么的,随便写写了,大家也随便看看不用太深究这帖子说的专业方向的内容。主要是分享一下我的喜悦,以及对 tiangolo 的感谢。这一部分应该是表达清楚了的。

#19 嗯,当时追踪这个看到 19 年就很多人提了 issues ,去年看的 Starlette 对 body 做了缓存以为解决了,没想到项目里有个地方用了 form 还是无法用新版本的 fastapi 解决这个问题,只能规避下自己做缓存消费😅

大佬牛的

大佬 666

感谢分享

恭喜

大佬牛的,向你学习

牛啊 fastapi 也好用

看了 OP 的博客,还是个文艺青年,已关注👀

好几年前,看过楼主说的管道用法,当时我还在想啥管道用法 ,进去一看,原来是 棍 的用法。 哈哈,当时就觉得思路新奇,但是没用过

大佬,抓