Django vs Flask vs Tornado

2019-03-15 22:47:07 +08:00
 crazyjin
python 初学者,目标是从事编程工作。这三个框架该选哪个?大家能帮忙分析一下吗?
主要是两个方面:易学程度(文档、书籍、视频教学),工作机会。

我刚刚给人推荐了 Flask,就因为文档和书不错。现在心里惴惴不安。特来请教。

要不大家投票吧。
9272 次点击
所在节点    Python
63 条回复
keysona
2019-03-16 12:11:04 +08:00
初学 flask (精简),进阶 django (全家桶),性能 tornado。

之后我跑去学 go 了。维护公司老项目( tornado ),新项目都上 go 了。
crazyjin
2019-03-16 16:15:15 +08:00
@keysona @spark @yeelone 现在 go 主要做些什么啊?适合没有计算机专业背景的初学者吗?
leopku
2019-03-16 17:20:15 +08:00
很好
我选 Sanic
AllenBigBear
2019-03-16 19:23:58 +08:00
要折腾,学 flask,属于各种轮子都有的,但是需要你自己动手装上去,对入门很不错。。
要系统化,学 django,后台给你配好了,妥妥的。
kqz901002
2019-03-16 19:46:24 +08:00
找工作,Java 选 Spring,Python 选 Django
自学,无所谓哪个都行
yeelone
2019-03-16 20:00:44 +08:00
@crazyjin 我以前的入门就是学的 django,后来就转到 go 了。 主要是 golang 部署超级简单。现在用 golang 做了好几个项目, 所以 golang 是我的后端首选 。
Flasky
2019-03-16 20:32:13 +08:00
我初学 Web 就是从 Flask 开始的,我之前的一个项目,前端 React,后端 Flask
Vegetable
2019-03-16 20:36:34 +08:00
初学者就是 django 吧,django 的体系能帮助初学者更好的理解 Web 开发.不需要自己去 Flask 的世界里探索.
不过根据我自己的经验来说,用什么框架差不多.
我从 Django 入门
现在喜欢用 sanic,喜欢上了 async/await.
做外包的时候用一般选 Flask.都是看情况的选的,不能只会用一个工具
tiaod
2019-03-16 21:23:05 +08:00
django 太大太重了
flask 比较小巧

如果你用 asyncio 的话,果断 sanic

当然最后你会发现,web 开发还是 nodejs 爽,我大 JavaScript 才是 web 的语言
kernel
2019-03-16 21:52:49 +08:00
用 tornado 何不 nodejs,天生异步,语言本身速度也更快,typescript 静态类型,吊打 py
zhuangzhuang1988
2019-03-16 21:58:35 +08:00
动态语言 太难维护
如果非得用 还是 Django 吧
crazyjin
2019-03-16 22:19:18 +08:00
@zhuangzhuang1988 已经重新向对方推荐 django 了。
crazyjin
2019-03-16 22:20:00 +08:00
@kernel 对方是初学者,没有计算机背景知识。太高端的技术我怕他 hold 不住。想让他先入门再说。
freakxx
2019-03-16 23:36:22 +08:00
速途同归。

我入门是由 flask,后面开发用的是 django。

flask 比较自由,而且整体的理念是比较自由的,但初学者比较难摸到套路。
django 的话,reuse 的理念比较强,整体的框架还有理念都很好地让人们明白怎么去安排代码。

django 还有一个好处是 django rest framework,这个东西基本能够把 web 能够遇到的比较烦的东西简化成声明式编程。


如果是零基础,我其实是比较建议 flask,更建议狗书,慢慢累代码上来,对编程这个事其实更有帮助。
zeromake
2019-03-17 09:54:27 +08:00
建议随便选一个就好了,真正的技术不会因为你换框架没掉的,主要是快速的开始而不是在找框架的路上
enrolls
2019-03-17 12:54:41 +08:00
说说我的看法。围绕题主的问题回答,易学度 Flask, Tornado, Django。F 自由度高,加上中文的文档,入门 hello,之后就看你想造点什么。个人觉得,先是简单认识一下 restful,组织代码的过程中,尽量用 restful 的思路,即 F 里面的 MethodView ;当然也可以写成函数里面一个 mapping-dict 判断 method 选择去向。
Tornado 同理 Flask。
至于 Django,强大的没错,新手友好度就一般般了。从 djangogirls 开始入手吧。
提个问题,前后端分离后,上述 3 个框架,用什么比较好呢?
像 @zeromake 所说的,开始学习吧,学到关键后,换什么框架都一样。工作方面,Python Web 需要不一定很大,Python ML 更有看头。WEB 路上使用 NODE 或者 GO。我推荐 GO 入门看 https://gobyexample.xgwang.me/
spark
2019-03-17 13:03:16 +08:00
初学者不要学 node,公司缺前端就会把你拉过去,然后你会发现这完全是另一个体系,重新学起来吧……
onelove
2019-03-17 23:14:21 +08:00
之前买过一本基于 python2.7 的狗书,没看下去。重新学了下 python3,因为想要做一个 web 系统,直接开始搞 Django。看文档,看书,一个多月的时间也撸出来了一个又不是不能用的简单的管理系统。

PS:因为是新手,我在电脑上启动服务,局域网访问时大部分时候是正常的,但偶尔也会报错。比如会出现类似 'NoneType' object has no attribute 'split' 的报错信息,请问着这种情况该如何避免?

作为新手,我搜索了一些相关内容,也没什么头绪。遇到类似问题就是敲回车,让系统继续运行。。。
xpresslink
2019-03-18 10:37:27 +08:00
楼主既然是初学 python 就先别学习这个了。
我的建议是先优先把 python 语言基础提升到中级以上水平,再来学 django 或 flask。
因为 python 有很多版本了,而 django 的版本也很多,网络上大量的教程文章都是基于不同版本的组合。这些版本造成的差异对于一个 Python 老手基本上不会造成什么困扰,但是新手就很捉鸡了,你的时间会浪费很多在填坑。

什么叫 python 的中级水平呢。
一、Python 标准库 80%都试过一遍了。
二、《流畅的 Python 》《 Python CookBook 》这两本书看着很轻松就能理解。
liwei1990913
2019-03-19 10:36:15 +08:00
Python web 方向很难找工作的,建议别入坑,

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

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

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

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

© 2021 V2EX