Flask 和 Django

2018-05-18 16:51:57 +08:00
 coolair
很多帖子问学哪个,打个比方,就好比房子,Flask 是给你地基你自己去建,Django 是给你个毛坯房,你自己去装修。

然后问题就来了,对于 Flask 来说,各种 extensions 就好比建房子的材料,你得选好供应商,才能确保房子的可靠性。

当然了,如果你仅仅是写一个简单的应用,比如搭个茅草屋而已,那不用扩展全自己折腾也是没问题。但是,如果你的应用在可预见的时间里会变成一个大型应用,就好比,最后它被搭成了 10 层楼。

这个时候你就会发现,一切不是你最初看到的那么简单,很多 extensions 你都 fork 了一份啊,打了好多补丁啊,你会发现你搭的这玩意怎么这么糟糕啊。然后,你开始重构……

这个时候你就会需要 Django 了,嗯,十层楼的框架给你了,你自己装修好就行。

额……是这么个理么?
5590 次点击
所在节点    Python
36 条回复
wellsc
2018-05-18 17:03:10 +08:00
不是这样的,现在都流行 soa 化,很多应用内的状态都会保存在数据库之类的中间件上去了,不会再 web app 里面去,soa 的服务只要保证能够快速读取状态,处理请求就好了,像 django 和 rails 之类的应用内部状态复杂的框架现在会显得臃肿,大部分内容都不会被用到的。
Eaveees
2018-05-18 17:07:48 +08:00
Emmm 我觉得差不多
不过技术选型一开始就该定下来起码不要拿 Flask 搭十层茅草屋了吧
毕竟是来快速轻量开发应用的...
ycz0926
2018-05-18 17:20:02 +08:00
@wellsc 前提是你人手要够
ycz0926
2018-05-18 17:21:06 +08:00
不然,还是 django 这种来的好,不是什么东西都适合分布式的,饼摊大点固然好
doubleflower
2018-05-18 17:21:40 +08:00
django 也就多了个内置 db,其它用到不多,还搞得复杂
Hopetree
2018-05-18 17:23:32 +08:00
但是据我说知,新手用 flask,一般水平用 Django,高手还是 flask

大概的意思就是,很简单的东西,你用 flask 就够了,一般规模的东西,你用 django 就够,大型的规模,flask 更好(只说这两个框架,其他的框架不作为参考)
sagaxu
2018-05-18 17:24:10 +08:00
@wellsc soa 会带来很高的服务治理和运维成本,不太适合很小的团队
Hopetree
2018-05-18 17:25:46 +08:00
不过,我喜欢 Django,而且我发现可能是我一开始接触的就是 Django,所以使用 flask 的时候总是习惯按照 django 的项目结构去组织 flask,然后写着写着就发现跟 django 很像了
zhuangzhuang1988
2018-05-18 17:28:18 +08:00
用过 flask 的表示不要作死, 还是 django 好
mcfog
2018-05-18 17:33:52 +08:00
反咯,当你要做一个特别简单的东西的时候,你应该找一个功能特别多的毛坯房,毕竟装修完就能入住

但你造十层楼的时候,还是从地基开始造反而更容易,毕竟比起把方的毛坯房弄成产品想要的圆形,还是自己搭更快风险更小

如果你要造一百层楼,那你就得从砖头、水泥、选址开始考虑了,毛坯房是什么?
wellsc
2018-05-18 17:38:50 +08:00
@ycz0926 #3 同样的团队体量下,我怎么觉得解耦之后能更加节省人手呢?很多以前应用内的状态都只需要从现成的中间件读写一下就好了,不需要在应用内部维护上下文,处理不同人员的代码逻辑之类的,开发过程会舒畅很多。



@Hopetree #6 不存在高手用姜戈,低手用 flask 的说法,我觉得对于一个基础过得去(指的是有一定的网络知识,软件工程意识,算法知识等等)的开发人员来说,这两个框架本质都是一样的,CRUD 鹅已。
monkeylyf
2018-05-18 17:39:44 +08:00
有需求的话就自己做“建房子的材料”和没需求的时候“为什么有这块墙在这里好碍眼“的区别。
有些时候用小型 RESTFUL 服务肯定是不会选 django 的。flask 相对灵活。当然也有灵活的代价。
xrlin
2018-05-18 17:45:46 +08:00
只用过 flask 的路过,Django 只看过一遍官方的 tutorial,没有实际用过,但是我之前写 flask 的时候也会参考 Django 的组织模式,flask 也需要很多 extension,做着做着就和 Django 差不多了,但是前后端分离,只提供 api 我感觉 flask 会更简单些。
KKKKKK
2018-05-18 17:49:36 +08:00
SKYNE
2018-05-18 17:54:51 +08:00
光会用 Django 的路过
nullcc
2018-05-18 18:07:20 +08:00
如果大部分功能都是 CRUD 的项目,选哪个都没差
有并发需求的上 Tornado,或者 Sanic
111111111111
2018-05-18 18:44:23 +08:00
@KKKKKK 思考和分享是个很赞的事情,不过……

“““
Flask 只是一个单独的 Web Framework,Tornado 还包含了 HTTPClient,意思是 Tornado 内置的服务器可以直接用于生产环境,Flask 还需要依靠 Gunicorn 和 Gevent 来用于生产环境和提升性能。 或许在部署方式上,Tornado 获胜
”””

tornado 可以直接用于生产环境,和 HTTPClient 没有必然联系吧,
另外聊 Tornado 的时候不说说长链接,会感觉不全面
个人资料,仅供参考
fushall
2018-05-18 18:55:57 +08:00
萝卜青菜,各有所爱呗,你可以都试一试,选一个自己喜欢的。
对于我个人来说,接触 flask 的时间比较长,
也常常写一些小东西,积累了一些代码,所以更加喜欢 flask 了。
Kilerd
2018-05-18 20:14:23 +08:00
@111111111111

那里确实是表达错了,主要想表达的意思是说 Tornado 无需依赖其他库就可以直接部署在服务器上。
WildCat
2018-05-18 20:15:12 +08:00
赚钱还是 Rails。人生苦短,我用 Rails。Rails 5 倍生产力。

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

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

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

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

© 2021 V2EX