Flask 和 Django

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

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

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

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

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

额……是这么个理么?
5728 次点击
所在节点    Python
36 条回复
PythonAnswer
2018-05-18 20:16:58 +08:00
有时候需要搭个大排档而已
有时候要写字楼
gotounix
2018-05-18 21:02:24 +08:00
从 Django 转到 Flask,然后又转到 Django ……
yuhr123
2018-05-18 21:34:32 +08:00
用 flask 真的可以很轻松的把项目写出来,Django 需要遵循的东西多一些,我个人不大喜欢那种束缚。就像 rails 我也不大喜欢一样。什么都有,换言之什么都有规则,不遵循跑不起来呀。
Rob007
2018-05-18 21:41:01 +08:00
两个我都用过。做 CRUD,Django 和 Flask,都很好用。Django 大而全,Flask 小而灵活。
gjquoiai
2018-05-19 00:38:11 +08:00
借楼问一下,有没有大佬在生产环境用过 quart ?表现怎么样?
param
2018-05-19 00:57:02 +08:00
我最近做了一个 API star + Django ORM 的项目
pabupa
2018-05-19 01:21:58 +08:00
Django 束手束脚的,,,hin 烦~
v2dead
2018-05-19 02:30:38 +08:00
用 flask 盖房子你起码对整栋楼有个全面掌控,哪里设计不好,哪里什么户型,哪里上电梯。
上了 django 第一件事情不是装修是开始打墙,熟悉的还好,知道哪原有结构,怎么敲个两面墙就能成我要的户型,原本哪有电梯就可以直接用,最后才是装修。不熟悉的就惨了,直接上项目用 django,左砸一面墙,右砸一面墙,发现墙后面还有墙,打完墙把下水给砸穿了还得补下水,最后整个楼全是洞,到处漏水,还被同事问,这么完整一套毛坯房怎么装修成这个鬼样子,不就是叫你加个空调管你把半栋楼给拆了。
est
2018-05-19 06:45:06 +08:00
flask 只给你修了个核心筒。外墙楼板自己搞

django 简装。
iConnect
2018-05-19 07:41:30 +08:00
flask 支持插件扩展 extensions 这点,理念上就更现代。也许开始没有 django 多年的积累来的完善,但先进性是明摆着的。插件的质量和丰富性都有了很大进步
deadEgg
2018-05-19 14:20:38 +08:00
两者都用过。

总觉着 django 比 flask 顺手且标准。

可能 django 结构化的东西+强大扩展,让我感觉它去实现一个 webapp 更加顺手好使。
ebingtel
2018-05-19 20:32:14 +08:00
pythonee
2018-05-19 23:23:45 +08:00
@WildCat 现在 rails 有什么大发展吗
WildCat
2018-05-19 23:31:12 +08:00
@pythonee

抛开工作不谈,一些比较有用的新特性:

1. Webpacker,和大前端趋势结合
2. ActionStorage,默认包含 s3, google cloud, azure,生态里已经有了 七牛、upyun 等,大幅简化开发
3. 生态方面:wechat-rails 大幅简化开发

Django 个人觉得有用的只有两点:
1. 成熟的 RBAC system
2. 模块化设计

然而 Django 的一些设计理解不能:
1. View 本身其实是 controller,这个错误的 terminology 让我不能忍
2. 没有好用的 generator
3. Model 层不够好用
4. Migration 自动生成,缺乏灵活性与兼容性 ( schema 这么重要的东西怎能自动生成?)
WildCat
2018-05-19 23:31:34 +08:00
Django 最硬伤的一点是:没有优秀的测试最佳实践。
encro
2018-05-21 22:34:19 +08:00
Django 是开发商送的精装,
Flask 是毛坯,
框架就是地基,
这两个地基都不错,
都够你做成百层高楼了,
至于选精装还是毛坯,
看你定制需求高不高。
楼上说 Django 没有测试最佳实践,这个是因为文档都没有看全吗?

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

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

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

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

© 2021 V2EX