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

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

Ruby 也有类似的问题,尽管我确实喜欢 Ruby 很多 比我更喜欢 Python,我的印象是,在管理/支持应用程序方面,Rails 与 Django 大致相同。

这里有人尝试过 Django 和 Grails (或其他 Web 框架)来完成重要的项目吗?他们比较如何?

有帮助吗?

解决方案

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

IDE 的:Django 在 Eclipse 中运行得非常好,Grails 在 IntelliJ Idea 中运行得非常好。

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

运行单元测试的时间:姜戈:2秒。圣杯:20 秒(测试本身都在不到一秒的时间内运行,剩下的就是加载框架来运行它们的部分......正如您所看到的,Grails 的加载速度慢得令人沮丧)。

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

编程语言:Groovy 太棒了。我喜欢它,胜过喜欢 Python。但我当然没有任何抱怨。

插件:圣杯:很多损坏的插件(并且可以使用每个 java 库)。姜戈:一些稳定的插件,但足以满足您的大部分需求。

数据库:姜戈:模式迁移使用南,并且通常具有直观的关系。圣杯:没有架构迁移,默认情况下它会在启动时删除数据库...搞什么鬼

用法:姜戈:初创公司(特别是在 Gov 2.0 领域)、独立网络开发商店。圣杯:企业

希望有帮助!

其他提示

但是,它是用Python编写的,这意味着在部署/包装,调试,探险仪和其他工具的方式上几乎没有真正的支持,这些工具和其他工具使建筑和维护应用程序变得更加容易。

Python 有:

  1. A 很棒的交互式调试器, ,这很好地利用了Python REPL.
  2. 简易安装 抗病毒 虚拟环境 用于依赖管理、打包和部署。
  3. 分析特征 与其他语言相比

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

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

说到框架,我今年的评价是:

  1. 塔架 (Python)
  2. 网络py (Python)
  3. 交响乐团 (PHP)
  4. 蛋糕PHP (PHP)

这些框架的功能都无法与 Django 或 Ruby on Rails 相媲美。根据我同事的意见我可以推荐你 小花 框架。缺点是,它是用 PHP 编写的,据我所知,PHP 没有用于调试、分析和打包应用程序的出色工具。

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

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

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

我很高兴看到真正构建和部署了一些商业项目的人对利弊发表评论。读起来非常有趣。

圣杯。

Grails看起来很像Rails(Ruby),但它使用比java更简单的groovy。它使用java技术,你可以毫无困难地使用任何java库。

我还选择 Grails 而不是简单性,并且有很多 java 库(例如 jasper report、jawr 等),我很高兴现在它们与 SpringSource 结合,这使得它们的基础更加坚实。

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

他们决定 催化剂框架, 和 Perl。那是大约 4 个月前的事了,他们反复谈论应用程序进展得有多好,以及他们的灵活性有多大。

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

对于 Python 来说,“良好的部署”问题并不像对于 Java 那样具有深刻的意义。

Django 的 Python 部署基本上就是“移动文件”。如果需要,您可以直接从 subversion trunk 目录运行。

您可以毫不费力地使用 Python 迪斯图尔斯 并为自己构建一个分发工具包,将 Django 应用程序放入 Python 的站点包中。我不太喜欢它,但它确实很容易做到。

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

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

cakephp.org

Cakephp 非常好,非常接近 ruby​​ on Rails (1.2)。它采用 PHP 语言,在共享主机上运行良好,并且易于实现。

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

我完全推荐cakephp。

就我个人而言,我用 Django 做了一些相当大的项目,但我只能与所说的“怪物”(Spring、EJB)和真正低级的东西(如 Twisted)进行比较。

使用解释性语言的 Web 框架大多还处于起步阶段,所有这些框架(即积极维护的框架)都在日益完善。

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

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

卡皮斯特拉诺 可能会在 Ruby 方面有所帮助。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top