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

2021-08-23 16:10:02 +08:00
 SystemLight
7592 次点击
所在节点    Python
66 条回复
qW7bo2FbzbC0
2021-08-24 10:33:33 +08:00
写 helloworld 的话,试试 bottle.py
wangyzj
2021-08-24 10:34:13 +08:00
怎么说的
python 什么都能干
但有些工作有更好的选择
比如写 web
flask,django 各自有各自的优点和缺点
虽然我更喜欢 flask,django 太臃肿
但是做一个对性能要求不高的能用的需要团队协作的东西的话,django 是真的成熟完善
qq976739120
2021-08-24 11:04:32 +08:00
flask 就是给老司机或者创业公司快速启动用的,提供个简单封装就够了.新手还是学学 spring 之类的比较好
vanwtf
2021-08-24 11:10:40 +08:00
前期写一些管理系统的项目都是 django 一把搓,flask 写的项目大了就感觉用起来麻烦了,写点小接口还好,django yyds
stach
2021-08-24 11:12:23 +08:00
楼主的焦点更多的是 python 是一门 `动态` 语言, 如果要解决这个问题, 考虑 `静态` 语言会更好, 比如 Go 就很不错.

另外, Flask 写后端是体验是非常好的, 觉得复杂的话, 可以不用 sqlalchemy, 直接用 PyMysql.
我个人使用 Flask 本身的组件就很少, 主要是冲着 Python 这个语言优势去的, 再配上 gevent, 性能也够用.
写过的业务也非常复杂, 可读性非常好, 如果用 Go 写就差一点了.

个人认为, Flask 的优势在于它简单, 其实, 你可以改造成你想要的样子, 你习惯的姿势, 而改造没有啥成本.
我可以像写 Go 后端 connection-per-goroutine 这样写 Python 后端 connection-per-gevent.
这个 Tornado, Django 对于我个人而言就是难用.

人生苦短, Python 真的不错, Flask 只是个工具.
DoctorCat
2021-08-24 11:44:49 +08:00
说一句很流氓的话:存在即合理。
好了,正经回贴:没觉得很难用啊,哈哈哈哈哈哈哈,虽然我现在改用 FastAPI 了
Mark24
2021-08-24 11:49:01 +08:00
楼主没有领会动态语言的精髓。
SystemLight
2021-08-24 13:07:15 +08:00
@yohole 没错小型的项目用起来非常爽,快速开发,但是项目复杂度一旦上来,自己写着写着都忘记这个变量什么类型的了,虽然有 typing 辅助,但是有些库太魔法了,导致类型都无法提示出来了。
SystemLight
2021-08-24 13:08:03 +08:00
@SjwNo1 正在学习 spring 全家桶,从 tornado 到 flask,到现在不想用 python 都是泪,哈哈
SystemLight
2021-08-24 13:18:04 +08:00
@ospider 听起来不错,可以尝试,SQLAlchemy 动态的简直了,.半天出不来提示,太不友好了
jiayong2793
2021-08-24 13:59:18 +08:00
@ytmsdy 你这个比如反了吧,动态语言数据没定义类型就拿来用,写完之后连自己都不知道是什么类型的
meiyoumingzi6
2021-08-24 20:33:43 +08:00
别的还好, 就是觉得 current_app 非常蛋疼, 我只想在非请求周期内用个 setting
lanlanye
2021-08-24 22:47:58 +08:00
最近写服务用 Golang,写业务用 Django,爽的一批
molika
2021-08-25 09:38:59 +08:00
别的不说 就说第一点 “自我感觉 python 越用越难用,动态类型提示极其的不友好” 自己写代码不随手 type hint 然后推导不出类型。。。怪 python 喽
SystemLight
2021-08-25 15:55:32 +08:00
@molika 用一下 sqlalchemy 就知道了,第三库内置的实现非常动态,导致无法提示
molika
2021-08-26 00:11:29 +08:00
@SystemLight 合适的 orm 的确难找 自己 hack 写方法包 加泛型 能推出来 我都这么干 但是没办法
allisone
2021-08-26 10:14:25 +08:00
用 django 一把梭
flniu
2021-08-26 10:47:58 +08:00
@ytmsdy 哥们你说的应该是卡丁车。F1 有离合器、档位,肯定不是一踩油门就走,也有倒档,没有 TCS/ABS 倒是真的。
flniu
2021-08-26 11:03:26 +08:00
我们的经验是:强制加类型提示,用 mypy 做类型检查(可以加到 pre-commit 或 /和 CI )。
另外也在用 black 做代码格式化,用 pylint 或 flake8 做风格检查。
这样综合起来,代码的可维护性会好很多。
xmt328
2021-08-26 15:05:47 +08:00
@molika 这个我就不能理解了,那干嘛不选个强类型语言

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

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

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

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

© 2021 V2EX