Node让你可以用javascript编写服务器端程序,让javascript脱离web浏览器的限制,像C#、JAVA、Python等语言一样在 服务器端运行,这也让一些熟悉Javascript的前端开发人员进军到服务器端开发提供了一个便利的途径。 Node是基于Google的V8引擎封装的,并提供了一些编写服务器程序的常用接口,例如文件流的处理。Node的目的是提供一种简单的途径来编写高性 能的网络程序。
Node.js的特性:
1. 单线程
2. 非阻塞IO
3. Google V8
4. 事件驱动
谁都知道没有最好的,要看情况。
很多情况下小巧优雅的web.py足够,个人喜欢tornado,如果构建的是web应用的话更推荐tornado,tornado类似web.py的威力加强版XD,是专为webapp而生的,异步非阻塞也是node.js的主要特性之一
如果是以内容为主的网站Django是比较优秀的选择,比如blog之类的,自带的后台、表单和ORM十分方便。缺点是太大了,什么都用django自家的而不用外头的好东西,而且模块间耦合比较严重。
新手学习来说web.py和django都是不错的选择,先试试django比较好
另外如果不用django的话表单可以用wtform,类似django数据库模块的有很多,sqlalchemy比较推荐但是学习曲线不是非常好看
Django 和 web.py 没有可比性,完全是两个不同级别的框架。
不知道你说的缺陷很大是指什么。既然是初学,建议使用 flask、web.py 这种轻量级的,能加强你对 python 语言本身的理解。
web.py
和flask
是轻量级的框架。这两者都没有ORM
、表单处理等等模块,web.py
甚至没有默认的template lib
Django
属于Full stack framework。包括了几乎所有web开发用到的模块。session管理、CSRF防伪造请求、Form表单处理、ORM数据库对象化、自己的template language
对新手来说:
- 用
web.py
或flask
学习web编程,知道啥是POST啥是GET啥是cookie等等 - 等熟悉web开发之后再决定是否用
Django
这类full stack的框架,还是用lightweight框架自己搭配ORM等模块
P.S. Django
的ORM是我见过的Python里最强大的。像SQLAlchemy
这样专门的ORM都不如Django
的ORM使用方便。另外admin site也是个很好用的特性
我之前是用Django
的ORM+web.py
开发REST API,用Django
的admin site开发后台管理界面,随便用Django
的模板做了几个外部展示页面。
Tornado其实跟web.py没有差多少,学习成本低。 Tornado本身就能当作http服务器,性能较uwsgi要好。