用jQuery替代Django或Web2Py
我打算写一个新的网页应用,考虑了两个后端选项——web2py或者django。
最近我接触到了jQuery,觉得它非常酷。
我能不能只用jQuery来代替django和web2py,直接完成这个网页应用呢?
我计划实现的一些功能包括——用户个人资料,用户可以往网站添加内容等等。
仅仅用jQuery能做到这些吗?
3 个回答
不,jQuery是用来处理网页前端的界面的,而web2py和Django是用来处理后端的。你需要两者结合。实际上,web2py里面就包含了jQuery,并且有很多插件可以把前端和后端的功能结合起来,这些插件都是基于jQuery的(http://web2py.com/plugins)。jQuery对你使用哪个后端框架(比如web2py、Django或其他)没有偏见,而后端框架对你使用哪个前端库(比如jQuery、prototype等)也没有偏见。在web2py的环境中,我们通常更喜欢使用jQuery。
补充一下:你可以把很多(如果不是全部的话)展示的内容从服务器端转移到客户端,但你仍然需要集中存储,这就需要后端的部分。
不,jQuery是一种客户端技术,而你提到的那两个是服务器端框架。
在用户的浏览器中完全用JavaScript做前端是完全可行的(当然,前提是你不需要支持没有JavaScript或非常老旧的浏览器),这样服务器的角色就变成了提供一个类似REST的接口,供客户端的AJAX调用使用(当然,服务器还需要提供各种静态文件)。
这种方法被称为瘦服务器架构,而jQuery(就像Dojo或Closure一样)非常适合用来实现客户端的部分。如果你能限制自己只在支持HTML5的高级浏览器上运行,你可以在客户端做更多的事情,这样就能减轻服务器的负担,提高可扩展性(当然,浏览器能承受的负担因你的应用而异——如果你的应用专门针对iPhone、Android或其他高级手机,或者是企业内部的网页应用,用户可以被要求使用Chrome或Safari等浏览器,那么你可以对浏览器的要求更高;但如果你想让数百万随机用户在开放网络上使用,那就要谨慎了)。
对于服务器端的部分,我建议使用一个超轻量的微框架,比如基于Werkzeug和WSGI的Flask,或者如果服务器使用的是App Engine,可以选择tipfy(还有其他的框架,特别是针对GAE的——可以在这里查看列表)。
不过,我不建议在客户端放置任何需要“安全”的东西,因为你的所有JavaScript代码,无论是否使用jQuery,都很容易被查看和攻击,所以任何你想要“安全”的东西都应该放在服务器端。