23

我想知道是否有类似 Django 的 Web 应用程序开发的简易性与良好的部署、调试和其他工具相结合?

Django 是一个用于构建内容密集型网站的高效框架;与那里的一些 Java 怪物相比,这是我尝试过的最好的,呼吸了新鲜空气。然而,它是用 Python 编写的,这意味着在部署/打包、调试、分析器和其他使构建和维护应用程序变得更加容易的工具方面几乎没有真正的支持。

Ruby 也有类似的问题,虽然我喜欢 Ruby比喜欢 Python好得多,但我的印象是 Rails 在管理/支持应用程序方面与 Django 大致相同。

这里有没有人尝试过 Django 和 Grails(或其他 Web 框架)来完成不平凡的项目?他们是如何比较的?

4

9 回答 9

32

你要找一个同时使用 Grails 和 Django 的人。我已经为大型项目完成了这两个方面的工作。这是我的想法:

IDE: Django 在 Eclipse 中运行良好,Grails 在 IntelliJ Idea 中运行良好。

调试: 几乎相同(假设您将 IntelliJ 用于 Grails,将 Eclipse 用于 Python)。单步调试、检查变量等……都不需要打印语句。有时 django 错误消息可能毫无用处,但 Grails 错误消息通常非常冗长且难以解析。

运行单元测试的时间: django:2 秒。Grails:20 秒(测试本身都在几分之一秒内运行,这是关于加载框架以运行它们的部分,其余部分...如您所见,Grails 的加载速度慢得令人沮丧)。

部署: Django:将一个文件复制并粘贴到 apache 配置中,要重新部署,只需更改代码并重新加载 apache。Grails:创建一个 .war 文件,将其部署在 tomcat 上,冲洗并重复以重新部署。

编程语言: Groovy 非常棒。我喜欢它,比 Python 更喜欢它。但我当然没有抱怨。

插件: Grails:许多损坏的插件(并且可以使用每个 Java 库)。Django:一些稳定的插件,但足以满足您的大部分需求。

数据库: Django:使用 South 的模式迁移,通常是直观的关系。Grails:没有模式迁移,默认情况下它会在启动时删除数据库...... WTF

用途: Django:初创公司(尤其是在 Gov 2.0 领域)、独立的网络开发商店。Grails:企业

希望有帮助!

于 2009-12-23T22:42:54.923 回答
10

然而,它是用 Python 编写的,这意味着在部署/打包、调试、分析器和其他使构建和维护应用程序变得更加容易的工具方面几乎没有真正的支持。

Python有:

  1. 一个很棒的交互式调试器,它很好地利用了 Python REPL
  2. easy_install anv virtualenv用于依赖管理、打包和部署。
  3. 与其他语言相媲美的分析功能

所以恕我直言,你不应该担心这些事情,使用 Python 和 Django 并快乐地生活 :-)

幸运的是,最新版本的Django 在 Jython 上运行,因此您无需放弃整个 Java 生态系统。

说到框架,我今年评估过:

  1. 塔架(Python)
  2. 网页(Python)
  3. Symfony (PHP)
  4. CakePHP (PHP)

这些框架中没有一个能比得上 Django 或 Ruby on Rails 的强大功能。根据我同事的意见,我可以向您推荐kohana框架。缺点是,它是用 PHP 编写的,据我所知,PHP 没有出色的工具来调试、分析和打包应用程序。

编辑:这是一篇关于 Python 应用程序(特别是 Django 应用程序)的打包和部署的非常好的文章。现在是 Django 社区的热门话题。

于 2008-09-16T22:02:55.863 回答
10

圣杯。

Grails 看起来就像 Rails (Ruby),但它使用了比 java 更简单的 groovy。它使用 java 技术,您可以毫无问题地使用任何 java lib。

我也选择 Grails 而不是简单,并且有很多 java lib(例如 jasper report、jawr 等),我很高兴现在他们加入了 SpringSource,这使得他们的基础更加稳固。

于 2009-01-20T07:32:41.500 回答
10

grails 在启动时删除数据库的说法是完全错误的。它在启动时的行为是完全可配置且易于配置的。在开发模式下运行应用程序时,我通常使用 create-drop。我在测试和生产中运行时使用更新。

我也喜欢引导处理,它让我可以在 Grails 中按环境预先配置测试用户、数据等。

我很乐意看到真正构建和部署了一些商业项目的人对利弊发表评论。成为一本真正有趣的书。

于 2010-01-04T05:37:55.090 回答
3

我有两个朋友最初开始使用 Ruby on Rails 编写应用程序,但遇到了许多问题和限制。经过大约 8 周的研究,他们决定研究其他替代方案。

他们选择了Catalyst Framework和 Perl。那是大约 4 个月前的事了,他们反复谈论应用程序的运行情况有多好,以及他们有多大的灵活性。

使用 Perl,您可以使用所有的 CPAN,以及包含的大量工具。我建议至少看看它。

于 2008-09-16T23:45:56.957 回答
3

“良好的部署”问题——对于 Python——没有它对 Java 的深刻意义。

Django 的 Python 部署基本上是“移动文件”。如果你愿意,你可以直接跑出 subversion 主干目录。

您可以毫不费力地使用 Python distutils并为自己构建一个分发工具包,将您的 Django 应用程序放入 Python 的站点包中。我不是它的忠实粉丝,但它真的很容易做到。

因为我的东西在 Linux 中运行,所以我有简单的“install.py”脚本,可以将东西从 Subversion 目录移到目录/opt/this/opt/that。我在我的 Apache 配置中使用显式路径设置来命名应用程序所在的目录。

可以通过就地编辑文件来完成修补。(一个糟糕的策略。)我更喜欢在 SVN 位置进行编辑并重新运行我的小安装,以确保我确实控制了所有文件。

于 2008-09-18T22:47:52.960 回答
1

cakephp.org

Cakephp 非常好,非常接近 ruby​​ on rails (1.2)。它在 php 中,在共享主机上运行良好并且易于实现。

唯一的缺点是文档有些欠缺,但你很快就能得到它并很快开始做一些很酷的事情。

我完全推荐cakephp。

于 2008-09-16T19:49:26.260 回答
1

就我个人而言,我用 Django 做了一些相当大的项目,但我只能与所说的“montrosities”(Spring、EJB)和像 Twisted 这样的非常低级的东西进行比较。

使用解释性语言的 Web 框架大多处于起步阶段,所有这些(即积极维护)每天都在变得更好。

于 2008-09-17T10:12:02.913 回答
1

您是否将“良好部署”与 Java 的 EAR 文件进行比较,后者允许您通过将单个文件上传到 J2EE 服务器来部署 Web 应用程序?(并且,在较小程度上,WAR 文件;EAR 文件可以包含依赖项目的 WAR 文件)

我认为 Django 或 Rails 还没有达到这一点,但我可能是错的...... zuber 指出了一篇关于 Python 方面的更多细节的文章。

Capistrano可能会在 Ruby 方面有所帮助。

不幸的是,我没有真正使用过 Python 或 Ruby,所以我无法在分析器或调试器方面提供帮助。

于 2008-09-17T13:19:14.147 回答