用惯了 django 改用 flask 有感

2019-07-15 22:09:18 +08:00
 marco25

django 就像 mac

flask 就像 linux

10510 次点击
所在节点    Python
50 条回复
est
2019-07-15 22:10:53 +08:00
flask 吹过头了。
echo1937
2019-07-15 22:28:35 +08:00
我把 Django 看作是 Python Web 开发的一种最佳实践的集合。
Abbeyok
2019-07-15 22:33:25 +08:00
各有所爱吧,反正我用 flask 用着挺好
Takamine
2019-07-15 23:29:04 +08:00
如果是为了把 Linux 配置成 Mac 却还选用 Linux 的话,不是自己想要重新造轮子就是闲出屁了。:doge:
whoami9894
2019-07-15 23:34:57 +08:00
没怎么用过 Django,不过感觉 flask 的周边 package 大多都是开箱即用,没太大硬伤
lynskylate
2019-07-15 23:44:34 +08:00
django+drf crud 开发效率实在太高了,flask 自定义起来更方便,代码写的实在太巧妙了。
janus77
2019-07-16 01:34:05 +08:00
我怎么两年前听说的是这样的说法:flask 开箱即用简单需求,django 适合复杂大型系统
???
kxiaong
2019-07-16 01:50:21 +08:00
刚把公司之前的一个 flask 老项目用 django 重写。

用 flask,ORM 就是绕不开的一个坑。sqlalchemy 虽然强大,却隐藏了不少坑。 除非经验丰富,否则用 sqlalchemy 就是找虐。

最喜欢的还是 django 的 ORM, 开箱即用,简单明了。框架约束多,可以保证新手不留烂坑。

高手可能有自己的想法,但是 python 本身就足够灵活,在框架选择上,还是尽可能保守一些更好。
rainmakeroly
2019-07-16 02:16:05 +08:00
记得好像 Flask 的文档应该算是比较详细的了 。
troywinter
2019-07-16 02:16:59 +08:00
曾经用 flask 写过两年的 production 级服务,自己组织了代码的分层架构,用装饰器实现相应的依赖注入,实现了 clean architecture 的六边形架构,对 sqlalchemy 也做了各种封装,感觉对于定制需求很多的人来说很合适。

自己定制可以实现更好的正交性,和 DDD 相结合,各个模块之间可以更合理的组织,曾经公司新来的同事再看到我写的项目之后都会很惊喜,认为我组织的项目结构很好的反应了业务的关系,让他们很好接手( PS 这几个同事是 Django 背景)。

了解底层机制无可厚非,这也是 flask 在设计时想要做的,我认为不懂 wsgi 这些 web 框架原理的是不合格的开发者,这些都是一年经验就能掌握的,相反的,如果框架做的大而臃肿,用户使用时不能理解设计的理念,api 设计没有正交关系,我觉得这并不好。另外,文档过于简单的话,我没体会到,本来就很小的框架,看文档我觉得所有 api 都讲解的很详细,除非你指那些扩展。

说到文档,记得有个笑话,The Django Documentation has more words than the Bible, and I know a whole lot of them by heart. 对不起,我大学四年 Bible 都没学完,Django 的文档实在看不完。
marco25
2019-07-16 08:31:21 +08:00
@troywinter @rainmakeroly flask 文档确实还 ok,但是和 django 比对新手的友好程度上还差不少。我碰 django 的时候连 http 基本的概念还不大清楚,也能完整地一步步跑起来。django 的文档不像文档,像是小说:-)所以你说的 more than bible 也是不夸张的。。。
newdongyuwei
2019-07-16 08:35:28 +08:00
做 web 开发追求生产效率就得上 full stack 的开发框架,用 flask 是自虐。sqlalchemy 也是渣渣。
c00WKmdje2wZLrSI
2019-07-16 08:47:51 +08:00
很小的项目的时候用 flask 倒是很爽,一个文件就解决了
coolair
2019-07-16 09:07:07 +08:00
@troywinter #10 很想学习学习你的依赖注入、六边形架构和对 sqlalchemy 的封装,有空写篇长博客介绍介绍吗?感谢。
NoirStrike
2019-07-16 09:07:34 +08:00
django admin 太香了...
tonnycao
2019-07-16 09:13:17 +08:00
@troywinter 可以分享一下架构吗?
qq976739120
2019-07-16 09:23:28 +08:00
系统稍微复杂点,django 的 orm 就不是优势了,很多时候都是各个库里做个简单查询,数据都是各种地方拼凑起来的,web 框架和 orm 做的并不多,那些 if else 用什么语言用什么框架写都一样,但是如果是个刚起步的小项目,django 的确帮你做好了很多优秀的封装,撸就完事了,而且 django 的文档真的业界标杆.
Outliver0
2019-07-16 09:27:28 +08:00
奔向 asgi
cnanyi
2019-07-16 09:29:00 +08:00
django admin 撸后台神器, 基本的 CRUD 包括 UI 都有了, 增加一些自定义功能也都有对应的方法,太香了
rogwan
2019-07-16 09:31:06 +08:00
@kxiaong SQLalchemy 会有哪些坑?

@newdongyuwei SQLalchemy 什么地方比较渣?

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

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

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

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

© 2021 V2EX