[想法] 给 Django 增加 Pydantic 支持

2020-08-08 16:56:23 +08:00
 abersheeran

先说我的观点,FastAPI 是拼接怪,在我心里跟 flask 这个玩具的地位差不多。可以用,但是没必要。

Django 在我心里仍然是目前最好的 Python web 框架。但是 Django rest framework 我也觉得是个狗屎,我两年前试图用不成熟的想法挑战 drf 的地位,最后发现自己也只能是再创造一个 drf 。

pydantic 的流行是一个契机,我自己的 web 框架 index.py 设计本身与 pydantic 就是弱耦合的,完全可以把这部分经验挪到 Django 上。成品的使用方法可能会类似于 index.py/openapi

就是不知道大家的看法如何?是否值得去做?

如果支持的人多,我会把接下来几周的周末时间拿来完成这个项目。

5150 次点击
所在节点    Python
38 条回复
nonduality
2020-08-09 10:01:18 +08:00
支持!
guyskk0x0
2020-08-09 11:00:21 +08:00
@abersheeran #11 validr 也很容易用来生成 API 文档,Schema 对象包含了全部元信息。
@abersheeran #13 也不是说求着别人用,这是框架生态问题,另起灶炉没有问题,只是受众会少很多。如果你做的是 Library 那没有问题,不和框架绑定可以灵活替换。如果你做的是一个框架,使用方就会顾虑了,框架只能用一个而且用上了就很难换,还要考虑大量周边工具是否完善和丰富。
so1n
2020-08-09 12:09:22 +08:00
@abersheeran 行啊
workwonder
2020-08-09 12:41:00 +08:00
能了解下“拼接怪”是指什么吗?
AX5N
2020-08-09 14:11:04 +08:00
@workwonder 主语是谁
johnsona
2020-08-09 16:15:09 +08:00
就冲你说 flask 是个玩具,我们就是统一战线
johnsona
2020-08-09 16:23:41 +08:00
很多人提到自动生成文档,我不清楚你们生产环境 swagger 用的怎么样,我感觉还是手动比较好
abersheeran
2020-08-09 16:29:43 +08:00
@guyskk0x0 pydantic 可以直接用。validr 得自己读元信息生成。这一点我站 pydantic 。
而且我个人更喜欢类型去标识,我甚至想更加极端一点,把所有元信息全部放在类型里,这样甚至可以让 mypy 在检查时就能预读出更多错误。
最后一点,Python 即将加入模式匹配,类型才是未来。

@workwonder fastapi 只是把 starlette 和 pydantic 拼接起来。如果我把 Django 和 pydantic 拼起来说自己是一个新 web 框架,是不是太猥琐了?
abersheeran
2020-08-09 16:32:24 +08:00
@Trim21 @so1n 那就留个邮箱?我发 QQ 号给你们。
abersheeran
2020-08-09 16:44:26 +08:00
@guyskk0x0 我听过最好笑的事就是微框架有生态。flask/starlette/fastapi/responder 这些微框架除了路由和基本的请求响应以外,几乎没有其他功能。所谓的“生态”基本都是弱耦合的。我可以这么说,fastapi 的生态一大半来自于 starlette 。而我的 index.py 与 starlette 一样是实现了标准 ASGI2.1 接口,starlette/fastapi 能用的生态,我也可以用。

各种微框架最大优势不是生态,而是名头。你一看 fastapi 上万 star,感觉还行,可以用。再看 index.py 一皱眉,花精力研究一个不流行框架不合适,于是你不用。这很正常。我也不会轻易尝试使用人数太少的东西。除非我参与了开发,或者我很懂它。
fushall
2020-08-09 23:23:05 +08:00
fastapi 不香吗
so1n
2020-08-10 09:50:48 +08:00
@abersheeran cWF6NjgwMzYwOUAxNjMuY29t
burryLove
2020-08-10 10:23:50 +08:00
flask 是玩具????
sylvos
2020-08-10 17:20:41 +08:00
qqq
sylvos
2020-08-10 17:23:55 +08:00
有一个 spectree 库
scyangjian
2020-08-10 18:15:15 +08:00
66666
frostming
2020-08-12 12:59:32 +08:00
短短一段话,好多暴论

FastAPI 是个拼接怪,我不说话
Flask 是个玩具,我略有微词
DRF 是个狗屎,这?
abersheeran
2020-08-12 13:09:04 +08:00
@frostming 哈哈哈,我不喜欢 DRF 那种侵入式的写法。写出来的味儿都不是 Django 了,就感觉是新整一个 API 框架出来。

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

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

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

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

© 2021 V2EX