关于python:Django -vs- Grails -vs-?

关于python:Django -vs- Grails -vs-?

Django -vs- Grails -vs-?

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

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

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

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


你问过一个同时使用Grails和Django的人。我已经完成了大项目的工作。这是我的想法:

IDE的:
Django在Eclipse中工作得很好,Grails在IntelliJ Idea中工作得非常好。

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

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

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

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

插件:
Grails:许多破碎的插件(并且可以使用每个java lib)。
Django:一些稳定的插件,但足以完成你需要的大部分工作。

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

用法:
Django:初创公司(特别是在Gov 2.0领域),独立的网络开发商店。
Grails:企业

希望有所帮助!


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

我也喜欢自举处理,它允许我通过Grails中的环境预先配置测试用户,数据等。

我很乐意看到有人真正建立并部署了一些商业项目评论利弊。是一个非常有趣的读物。


Grails的。

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

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


However it's written in Python which
means there's little real support in
the way of deployment/packaging,
debugging, profilers and other tools
that make building and maintaining
applications much easier.

Python有:

  • 一个很棒的交互式调试器,可以很好地利用Python REPL。
  • easy_install anv virtualenv用于依赖管理,打包和部署。
  • 与其他语言相比的分析功能
  • 所以恕我直言,你不应该担心这些事情,使用Python和Django,并愉快地生活:-)

    幸运的是,最新版本的Django在Jython上运行,所以你不需要抛弃整个Java生态系统。

    说到框架,我今年进行了评估:

  • 挂架(Python)
  • webpy(Python)
  • Symfony(PHP)
  • CakePHP(PHP)
  • 这些框架都没有接近Django或Ruby on Rails的强大功能。基于我的同事意见,我可以推荐你kohana框架。缺点是,它是用PHP编写的,据我所知,PHP没有出色的工具来调试,分析和打包应用程序。

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


    对于Python来说,"良好部署"问题并不具备Java的深层意义。

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

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

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

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


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

    他们选择了Catalyst Framework和Perl。那是大约4个月前的事了,他们一再谈到应用程序的进展程度,以及它们的灵活性。

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


    通过"良好部署",您将它与Java的EAR文件进行比较,这些文件允许您通过将单个文件上载到J2EE服务器来部署Web应用程序吗? (在较小程度上,WAR文件; EAR文件可以包含依赖项目的WAR文件)

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

    Capistrano可能会帮助Ruby方面。

    不幸的是,我还没有真正使用Python或Ruby,所以我无法帮助分析器或调试器。


    我个人用Django制作了一些相当大的项目,但我只能比较所谓的"montrosities"(Spring,EJB)和真正的低级别的东西,比如Twisted。

    使用解释语言的Web框架大多处于初期阶段,而且所有这些(积极维护,即每天)都在变得越来越好。


    cakephp.org

    Cakephp非常好,非常靠近轨道上的红宝石(1.2)。它在PHP中,在共享主机上运行良好,易于实现。

    唯一的缺点是文档有点缺乏,但你很快得到它并迅速开始做很酷的东西。

    我完全推荐cakephp。


    推荐阅读

      linux系统命令行工具?

      linux系统命令行工具?,工具,系统,工作,状态,命令,地方,标准,信息,环境,基础,L

      linux命令下载工具?

      linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文

      linux好用的命令工具?

      linux好用的命令工具?,系统,管理,工具,基础,服务,信息,工作,发行,公司,代码,L

      linux常用命令行工具?

      linux常用命令行工具?,系统,工作,工具,地址,管理,信息,命令,软件,目录,基础,l

      linux命令行专业工具?

      linux命令行专业工具?,工具,系统,工作,信息,服务,环境,基础,命令,管理,发行,l

      linux命令行关闭网页?

      linux命令行关闭网页?,服务,系统,状态,管理,命令,进程,文件,模式,指令,主机,l

      linux命令行执行工具?

      linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,s

      linux命令行执行工具?

      linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,s

      开发linux命令工具?

      开发linux命令工具?,系统,工具,环境,状态,平台,设计,数据,电脑,中小企业,标

      linux命令行工具大全?

      linux命令行工具大全?,工作,系统,工具,地址,信息,命令,目录,基础,管理,文件,l

      linux命令联想工具?

      linux命令联想工具?,地址,工作,系统,工具,状态,标准,信息,命令,目录,左下角,L

      linux浏览网页的命令?

      linux浏览网页的命令?,工作,系统,传播,地址,命令,环境,发行,信息,网络,基础,l

      linux命令访问网页?

      linux命令访问网页?,地址,传播,网络,系统,软件,网址,密码,服务,数据,首次,lin

      linux网页访问命令?

      linux网页访问命令?,地址,网络,工作,系统,命令,传播,信息,软件,代码,首次,在L

      linux命令工具怎么用?

      linux命令工具怎么用?,地址,系统,工作,单位,工具,密码,服务,命令,处分,基础,

      linux命令行截图工具?

      linux命令行截图工具?,工具,电脑,软件,系统,截图,网站,工作,环境,暂停,命令,L

      linux命令工具教程?

      linux命令工具教程?,系统,工具,信息,基础,基础知识,代码,在线,地址,项目,服

      linux命令行渗透工具?

      linux命令行渗透工具?,系统,发行,网络,工具,信息,地址,管理,数据,工程,中国,

      linux卸载工具命令?

      linux卸载工具命令?,软件,系统,工具,名称,电脑,信息,命令,终端,程序,提示符,l

      linux命令链接网页?

      linux命令链接网页?,网络,信息,系统,网址,工具,网站,状态,发行,数据,命令,Lin