我想知道是否有类似Django的简易Web应用程序开发与良好的部署,调试和其他工具相结合?
Django是一个非常高效的框架,用于构建内容繁重的网站;与一些Java怪物相比,我尝试过的最好的和新鲜空气。然而,它是用Python编写的,这意味着在部署/打包,调试,分析器和其他工具方面几乎没有真正的支持,这使得构建和维护应用程序变得更加容易。
Ruby有类似的问题,虽然我比Ruby更喜欢Ruby 很多,但我得到的印象是,在管理/支持应用程序时,Rails与Django大致相同。
有没有人在这里尝试过Django和Grails(或其他网页框架)的非平凡项目?他们是如何比较的?
答案 0 :(得分:30)
你问过一个同时使用Grails和Django的人。我已经完成了大项目的工作。这是我的想法:
<强> IDE的:强> Django在Eclipse中工作得很好,Grails在IntelliJ Idea中工作得非常好。
<强>调试:强> 几乎相同(假设您使用IntelliJ for Grails,Eclipse使用Python)。步骤调试,检查变量等......永远不需要打印语句。有时django错误消息可能没用,但Grails错误消息通常很冗长,很难解析。
运行单元测试的时间: django:2秒。 Grails:20秒(测试本身都在几分之一秒内完成,这是关于加载框架以运行它们的部分,其余部分......正如你所看到的,Grails的加载速度令人沮丧)。
<强>部署:强> Django:复制&amp;将一个文件粘贴到apache配置中,然后重新部署,只需更改代码并重新加载apache即可。 Grails:创建.war文件,将其部署在tomcat上,冲洗并重复以重新部署。
编程语言 Groovy非常棒。我喜欢它,比Python更受欢迎。但我当然没有抱怨。
<强>插件:强> Grails:许多破碎的插件(并且可以使用每个java lib)。 Django:一些稳定的插件,但足以完成你需要的大部分工作。
<强>数据库:强> Django:使用South的模式迁移,以及通常直观的关系。 Grails:没有模式迁移,默认情况下它会在启动时删除数据库... WTF
<强>用法:强> Django:初创公司(特别是在Gov 2.0领域),独立的网络开发商店。 Grails:企业
希望有所帮助!
答案 1 :(得分:10)
然而,它是用Python编写的 意味着没有真正的支持 部署/包装的方式, 调试,分析器和其他工具 这使得建筑和维护 应用程序更容易。
Python有:
所以恕我直言,你不应该担心这些事情,使用Python和Django并幸福地生活: - )
幸运的是,Django runs on Jython的最新版本,所以你不需要抛弃整个Java生态系统。
谈到框架,我今年进行了评估:
答案 2 :(得分:10)
Grails的。
Grails看起来像Rails(Ruby),但它使用比java更简单的groovy。它使用java技术,你可以毫无困难地使用任何java lib。
我也选择Grails而不是简单,并且有很多java lib(例如jasper report,jawr等),我很高兴现在他们加入了SpringSource,这使得他们的基础扎实。
答案 3 :(得分:10)
grails在启动时删除数据库的声明是完全错误的。它在启动时的行为是完全可配置的,易于配置。我通常在开发模式下运行应用程序时使用create-drop。我在测试和生产中运行时使用更新。
我也喜欢使用Grails中的环境预先配置测试用户,数据等的引导处理。
我很想看到有人真正建立并部署了一些商业项目,评论其优缺点。是一个非常有趣的读物。
答案 4 :(得分:3)
我有两个朋友最初开始使用Ruby on Rails编写应用程序,但遇到了许多问题和限制。经过大约8周的研究,他们决定调查其他替代方案。
他们选择了Catalyst Framework和Perl。那是大约4个月前的事了,他们一再谈到应用程序的进展程度,以及它们的灵活性。
使用Perl,您可以使用所有CPAN,以及包含的大量工具。我建议至少看看它。
答案 5 :(得分:3)
对于Python来说,“良好部署”问题并不具备Java的深层意义。
Django的Python部署基本上是“移动文件”。如果需要,您可以直接从subversion主目录运行。
使用Python distutils可以毫不费力地构建自己的分发工具包,将Django应用程序放入Python的站点包中。我不是它的忠实粉丝,但它真的很容易做到。
由于我的东西在Linux中运行,我有简单的“install.py”脚本,可以将Subversion目录中的东西移到/opt/this
和/opt/that
目录中。我在Apache配置中使用显式路径设置来命名应用程序所在的目录。
可以通过编辑文件来完成修补。 (一个糟糕的政策。)我更喜欢在SVN位置编辑并重新运行我的小安装,以确保我确实控制了所有文件。
答案 6 :(得分:1)
cakephp.org
Cakephp非常好,非常靠近轨道上的红宝石(1.2)。它在PHP中,在共享主机上运行良好,易于实现。
唯一的缺点是文档有点缺乏,但你很快就会得到它,并迅速开始做很酷的事情。
我完全推荐cakephp。
答案 7 :(得分:1)
我个人用Django制作了一些相当大的项目,但我只能比较所谓的“montrosities”(Spring,EJB)和真正的低级别的东西,比如Twisted。
使用解释语言的Web框架大多处于初期阶段,并且所有这些(积极维护,即每天)都在变得越来越好。
答案 8 :(得分:1)
通过“良好部署”,您是否将其与Java的EAR文件进行比较,这些文件允许您通过将单个文件上载到J2EE服务器来部署Web应用程序? (并且,在较小程度上,WAR文件; EAR文件可以具有依赖项目的WAR文件)
我认为Django或Rails还没有达到这一点,但我可能错了...... zuber指出了一篇关于Python方面的更多细节的文章。
Capistrano可以帮助Ruby方面。
不幸的是,我还没有真正使用Python或Ruby,所以我无法帮助分析器或调试器。