用户授权不得不说当我知道RoR(Ruby on Rails)没有打包任何形式的用户授权时多少有点震惊。我想不出任何不需要授权和用户管理的项目。在这方面最受欢迎的gem是devise,毫无疑问也是Rails上最受欢迎的,在Github上有Rails一半的得分。 尽管Django从最开始就将授权框架打包进来,但直到一年之前这种授权方式的灵活性才有所改善,就是当版本1.5发布并带来可配置的用户模型(user model)。之前,你会被强制要求使用Django的方式定义用户,而不能任意更改字段或者添加字段(field)。如今这不再是问题,你可以用自己定义的用户模型代替原有模型 第三方库这里没什么好说的。这篇文章里已经提到了很多二者可使用的第三方库,而且都拥有太多的app。Django Packages是个非常好的网站,可以用来搜索Django的App。不过还未发现Rails有类似的网站。 社区虽然我没有更具体的数据来证明,但我相当确定Rails的社区更大一些。在Github上RoR拥有Django两倍的得分。在Stackoverflow上标记为Rails的问题也有两倍之多。而且似乎RoR比Django有更多的工作(在Stackoverflow职业中241对58)。Rails很庞大而且有非常多迷人的资源来供学习,比如Rails Casts和Rails for Zombies。Django拥有Getting Started with Django但是没有可比性。我知道Django使用The Django Book,但是已经落后若干年了。不要以为我说错了,尽管有很多Django团体而且如果你遇到问题,你很容易通过google找到答案,但Django就是没有Rails庞大。 结论Ruby on Rails和Django在网络开发方面都是非常出色的框架。在开发模块化的简洁的代码,在减少开发时间。我已经离不开ORM框架,模板引擎和会话管理系统。那么问题是我如何选择呢? 选择任何一个都不会错。我的建议通常就是两者都使用并选出你最合适的。最终的决定会取决于你倾向于哪种语言或者哪种原则:惯例优先原则(convention-over-configuration,CoC)还是显式优先隐式原则(explicit is better than implicit)。使用CoC可以自动加载(import),控制器实例会自动传递给视图以及便捷的编写测试。使用显式优先隐式,会明确知道代码在做什么,即使对那些不熟悉框架的人。 从我个人经验来看我更喜欢Django。我喜欢Python的明确(explicitness),喜欢Django的表单以及此框架更有防御性(有限的模板语言,在model字段中 |