你对Django有什么看法?

时间:2008-10-30 14:41:38

标签: python django

我几天前开始学习Django,当我深入研究它时,似乎我开始更喜欢它了。
试图从其他语言迁移。 我不会说哪一个,因为这个问题的目的不是抨击任何东西。

所以我想知道你对Django的看法。

你喜欢什么?
是什么让你切换/使用它?
您希望它具有哪些功能不存在?
什么会让你切换到它? 生产速度有多快?
掌握它有多难?

6 个答案:

答案 0 :(得分:8)

我喜欢它:

  • 非常简单的ORM
  • 明确分离模板/控制器
  • django的管理员
  • 可插拔的应用程序:在我看来,Django社区确实钉了那个!

是什么让我转变:

  • 主要是好奇心
  • 我从一位同事那里听到很多关于它的好消息
  • 我想要比我生活的Java更轻量级的东西
  • 我有一个大量数据驱动的副项目,Django-Admin界面非常有用

我想要的功能:

  • 更好/更简单地控制事务(配置不同类型的事务(只读/读写/在某些地方进行调整)并不像我以前那么容易。在视图模型中有一个会话,在那里交易在视图中仍处于打开状态并不能让我感觉舒服,如果交易没有留下服务层,我更愿意。但同样,Django模型中并没有真正的服务层。
  • 更好的业务逻辑模型(也许这只是我,但我想念企业java的面向服务的方法,我不知道我是否应该将业务逻辑放在视图中,在表单中或在模型中。这些都不是解决方案让我感到温暖和模糊......与此同时,我目前开发的应用程序中没有繁重的业务逻辑,我可能仍会使用Java那些)
  • 稳定性(在不改变的意义上,不是在不崩溃的意义上)。再次,来自Java,我仍然在为许多项目开发Java 1.4,有一个刚刚发布1.0的项目以及随之而来的所有重构都不是很令人放心。它确实需要一些工作来跟随主干并使用0.96并不是特别引人注目。我认为在一个关键任务企业项目上使用它我觉得不舒服。

我意识到我希望有很多改进。不要误会我的意思,我喜欢Django,我会坚持很多项目。我只是不会把它放在任何地方......

答案 1 :(得分:8)

你喜欢什么?

网址调度:我从来不是“/foo.php”的忠实粉丝,我的服务器上的文件是“foo.php”,如果我想要更好的网址,我需要使用mod_rewrite,并保持与我对foo的期望是什么。

ORM:根据我的经验,90%以上的查询不需要手工编写。一般而言,智能缓存对性能更为重要。您可以始终根据需要删除原始SQL。

中间件和信号:轻松扩展请求/响应/视图/渲染周期的大部分内容,而无需触及Django代码本身。

是什么让你切换/使用它?

当我对Python Web框架产品感到失望时,它就出现了。对我来说很容易卖。

生产速度有多快?

嗯,说实话,我从来不关心太多。您的应用的网络服务器部分(在我看来)总是最容易扩展。只要您使用“最佳实践”并且不分享任何内容,您只需添加软件负载均衡器即可添加新的Web服务器,直到奶牛回家为止。人们通常遇到的第一个瓶颈是数据库负载 - 但Django为您提供了很好的缓存API,可以帮助您减轻这种负担。

那就是说,我只是略过了这个,但它似乎比Rails和众所周知的PHP框架更快:http://wiki.rubyonrails.org/rails/pages/Framework+Performance

掌握它有多难?

我想这取决于你如何定义'master'。文档很棒,在一个体面的网站/应用程序的过程中,我认为你会使用一些东西,这是一个很好的开始。

答案 2 :(得分:4)

喜欢

优秀的文档。加上stackoverflow的帮助,我在短短几天内就学到了很多东西。 它用Python编写。 它有精彩的contrib.admin,它甚至可以模块化和扩展,可以将它嵌入到适当的Web应用程序中。

不喜欢

到目前为止没有。我仍然被迷住了

开关

它是我的第一个Web框架,所以没有切换。使用Python几年后,Django似乎是我的自然选择,主要是因为它的设计简洁。

答案 3 :(得分:4)

你喜欢什么?

  • 模板,特别是继承功能,在处理jsps后非常惊人
  • 不必再写sql

是什么让你切换/使用它?

一位朋友在公开发布之前一直关注其进展,从那时起我一直在将它用于个人项目。

您希望它具有哪些功能?

我意识到这不是一个微不足道的问题,而且我认为谷歌夏天的代码已经花在了这上面,但我希望看到更好的方法来发展数据库(哪些铁路似乎做得相当不错)

什么会让你切换到它?

我已经在家里使用它了,我不会在工作中做出这些决定。

生产速度有多快?

我从来没有遇到过问题,但是大多数情况下django似乎都不在意,所以性能似乎更多地基于python或db。

掌握它有多难?

文档非常精彩,而且有足够多的人使用它,如果没有帮助,通常可以获得答案。另外,当我不得不进入源代码时,它也是干净的并且也有文档记录,所以我想说它比大多数框架,基于web或其他方式更容易掌握。

答案 4 :(得分:3)

我没有机会使用它。也就是说,我最喜欢的django部分是内置的管理控制台。

答案 5 :(得分:3)

喜欢:

  • Pythonic(我很容易理解语言),从而轻松扩展任何部分
  • 文档,
  • 社区(我属于法国人,他们非常好)
  • 围绕它的大量项目
  • 完全集成的测试引擎。只需编写测试,您几乎可以在不启动Web浏览器的情况下测试整个应用程序。
  • 自定义命令只是摇滚。它允许您轻松地执行自定义任务。我经常使用它来运行批处理任务(例如,清理数据库,或检查生产服务器上的完整性 - 测试使用自己的数据库,而不是应用程序中的实际数据。)

为什么要切换?

  • 从头开始厌倦了PHP。
  • 在我的手背上有一个RSI,非常痛苦。切换到无分号语言后,它消失了(它是真的!)
  • 更加可靠的开发(TDD),并且更快(您可以在几分钟内完成CMS) - 尽可能多的其他Web框架。

不喜欢:

  • 没有流畅的数据模型迁移。由于意外的功能,您经常需要更改模型。这很痛苦,你必须手工制作,有时可能会有风险。

难以掌握?

  • 如果你已经拥有Python技能,你可以在几个小时内建立起来。
  • 如果你不这样做,首先要深入Python(嘿) - 这需要几天时间。
  • “掌握”可能需要一些时间......而且你经常在Django文档中发现宝石会让你大叫“我喜欢Django!” (好吧,它对我有用)