几天前我开始学习Django,当我深入研究它时,似乎我开始更喜欢它了.
试图从其他语言迁移.我不会说哪一个,因为这个问题的目的不是抨击任何东西.
所以我想知道你对Django的看法.
你喜欢它什么?
是什么让你切换/使用它?
您希望它具有哪些功能?
什么会让你切换到它?
生产速度有多快?
掌握它有多难?
我喜欢什么:
非常简单的ORM
明确分离模板/控制器
Django的管理
可插拔的应用程序:在我看来,Django社区确实钉了那个!
是什么让我切换:
主要是好奇心
我从一位同事那里听到很多好消息
我想要的东西比我为生活的Java更轻巧
我有一个大量数据驱动的副项目,Django-Admin界面非常有用
我想要什么功能:
更好/更简单的事务控制(配置不同类型的事务(只读/读写/一些调整)并不像我以前那么容易.在视图模型中有一个会话,事务仍处于打开状态在视图中并没有让我感到舒服,如果事务没有留下服务层,我更愿意.但同样,Django模型中并没有真正的服务层.
更好的业务逻辑模型(也许这只是我,但我想念企业java的面向服务的方法,我永远不知道我是否应该将业务逻辑放在视图中,在表单中或在模型中.这些解决方案都没有让我感到温暖和模糊......与此同时,我目前开发的应用程序中没有繁重的业务逻辑,我可能仍然会使用Java来实现这些目标)
稳定性(在不改变的意义上,不是在不崩溃的意义上).再次,来自Java,我仍然在为许多项目开发Java 1.4,有一个刚刚发布1.0的项目以及随之而来的所有重构都不是很令人放心.它确实需要一些工作来跟随主干并使用0.96并不是特别引人注目.我认为在一个关键任务企业项目中使用它并不舒服.
我意识到我希望有很多改进.不要误会我的意思,我喜欢Django,我会坚持很多项目.我只是不会把它放在任何地方......
URL调度:我从来不是"/foo.php"的忠实粉丝,是我服务器上的文件"foo.php",如果我想要更好的URL,我需要搞乱mod_rewrite并保持符合我的逻辑在foo期望.
ORM:根据我的经验,90%以上的查询不需要手工编写.一般而言,智能缓存对性能更为重要.您可以根据需要随时删除原始SQL.
中间件和信号:轻松扩展请求/响应/视图/渲染周期的大部分内容,而无需触及Django代码本身.
当我对Python Web框架产品感到失望时,它就出现了.对我来说很容易卖.
嗯,说实话,我从来没有太在意.您的应用的网络服务器部分(在我看来)总是最容易扩展.只要您使用"最佳实践"并且不分享任何内容,您只需添加软件负载均衡器即可添加新的Web服务器,直到奶牛回家为止.人们通常遇到的第一个瓶颈是数据库负载 - 但Django为您提供了很好的缓存API,可以帮助您减轻这种负担.
也就是说,我只是浏览了这个,但它似乎比Rails和众所周知的PHP框架更快:http://wiki.rubyonrails.org/rails/pages/Framework+Performance
我想这取决于你如何定义'主'.文档很棒,在一个体面的网站/应用程序的过程中,我认为你会使用一些东西,这是一个很好的开始.