有没有人觉得 Python Flask 写后端很难用?

2021-08-23 16:10:02 +08:00
 SystemLight
7588 次点击
所在节点    Python
66 条回复
danc
2021-08-23 16:56:24 +08:00
写惯了静态类型的,这种动态类型的我是真的 hold 不住了🤣。一开始写的时候其实还好,后面过了一段时间要改的话,尤其是范围稍微大一点,直接火葬场
youngce
2021-08-23 17:00:30 +08:00
既然这么不喜欢 flask 的简陋,为啥不选 django 呢。

ps:fastapi 不是比 flask 生态更差?不知道为什么这么多推荐的
chenqh
2021-08-23 17:01:50 +08:00
@youngce django 上手比 flask 难呀
Latin
2021-08-23 17:02:03 +08:00
题主的目标就是引战么?
lgpqdwjh
2021-08-23 17:41:20 +08:00
首先这是一个引战帖

然后我想说,flask 和 fastapi 压根就不是一类东西, 没有可比性

至于你觉得 flask 写后端很难用, 大概率是你自己的问题
kaka6
2021-08-23 17:50:23 +08:00
flask 写后端挺好用的,简单便捷,好扩展
SjwNo1
2021-08-23 18:25:57 +08:00
求求你用 java 吧
roundgis
2021-08-23 18:29:15 +08:00
找一個好點的 ide

例如 pycharm

日子會好過些
est
2021-08-23 18:30:53 +08:00
flask 本来就很难用。就是一个写 hello world 的脚手架
CicadaLewis
2021-08-23 18:32:50 +08:00
type hint 了解一下
lesismal
2021-08-23 18:34:41 +08:00
golang,你值得拥有
leonme
2021-08-23 18:43:52 +08:00
python 本身就很拉跨,和 flask 无关
fatbear
2021-08-23 19:02:35 +08:00
楼主吐槽主要集中在两点,一个是动态类型的问题,这不是 flask 的问题,是 python 的问题,现在 python3 有了类型注解,和 ide 集成的也很好,并不存在没有提示等问题。 第二,楼主一直觉得 sqlalchemy 难用,flask 比 django 就好用在每个组件都可以自由替换,你可以选择 peewee,序列为 json 只需要一句 query.dicts()。
很多人去用其他语言的 xx 框架难用其实就是先入为主了,用其他语言的思想去看待另一门语言,python 的优势就在于快速开发,快速迭代,如果作为内部工具的后端服务,这两个优势是其他语言无可比拟的
Kilerd
2021-08-23 19:15:24 +08:00
哪哪都能看到说 flask 和 fastapi 不是同一个东西的人,别人明明就想用 python 写个 API 。然后你就给讲到了什么封装,什么架构能力不对称。哎
loading
2021-08-23 19:19:57 +08:00
flask 基本就是用来学 hello world 的,复杂应用超级麻烦。
letking
2021-08-23 19:28:34 +08:00
楼主引战有一手,学习了。
efaun
2021-08-23 21:08:45 +08:00
@Kilerd #34 一个东西看起来像鸭子,吃起来像鸭子,那它就是鸭子,你但凡正眼看下小丑,那你就输了
yohole
2021-08-23 23:12:49 +08:00
我一个写了多年 java 的人,用 python 写 web 就真的很别扭,不管用 python 什么框架都一样,直到用上 PyCharm 才好过了一点点,python 的特点就是写那些几十行最多几百行的工具时候,非常爽和快
RockShake
2021-08-24 08:39:23 +08:00
目前也就 Django 无论文档还是生态完整
ospider
2021-08-24 09:21:52 +08:00
我就不知道 flask 社区对 fastapi 咋就这么大的敌意?看来是真的戳到痛处了? FastAPI 人家大大方方的在主页写着基于 starlette 和 pydantic,咋就让你们你说的好像是偷源码一样了?人家 starlette 开源不就是为了让别人复用么?

楼主说的这几点,FastAPI 可以解决不少,建议尝试一下:
1. FastAPI 基于 Pydantic,强制你把参数都加上 type hint,一定程度上缓解了动态类型的问题。
2. FastAPI 中使用 Pydantic 定义参数,SQLAlchemy 定义数据库模型,个人使用下来感觉还是比较顺畅的。出参入参和模型中的字段还是有差异的,区别开有意义。不过 Pydantic 有 ORM mode,也可以直接读取 SQLAlchemy model 。
3. FastAPI 有强大的依赖注入系统,像是登录这种操作,直接写个几行的依赖就好了。社区有 fastapi_user/login 这种插件,但是我觉得是脱裤子放屁。官方文档就有详尽的实现 oauth2 的教程。
4. SQLAlchemy 的类型提示有时候真是无解……太动态了。
5. FastAPI 也是全局一个 app/router,然后其他的 router 注册上去。。不过最后在自动生成的 swagger 文档里是统一的

总之,如果尝试写前后端分离的 SPA 的话,建议试一下 FastAPI,毕竟刚用起来的 Flask 非常像,学习成本很低。

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

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

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

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

© 2021 V2EX