2009-12-02 77 views
2

我一直在使用Ruby on Rails已经有一年多的时间了,并且已经为Python提供了一些开发工作。我想知道,如果使用Python进行开发就像Ruby一样令人愉快,就清晰度和易用性而言。 Python适合Web开发的程度如何。我听说Pylons是Rails框架的直接端口,但是它提供了相同级别的舒适性和功能。是否有任何使用Python构建的流行网站以及与Rails具有相同级别灵活性的框架。Ruby on Rails后的Python

因为Rails看起来不像工作。

回答

5

Django是最有名的之一。它采用了不同的方法来实现Web开发,然后是Ruby,但它同样强大且功能丰富。运行Django的示例网站是lawrence.com

主塔是另一个流行的主题,我不知道为什么你听说它是Rails克隆,因为它不是。这是一个轻量级的框架,利用其他开源项目的强大功能为您提供实施灵活性。例如,您可以选择使用SQLAlchemy,SQLObject或CouchDB来管理数据库。或者你可以选择Mako,Genshi,Jinja2,或者你喜欢的任何模板。我想你会得到这张照片。一些示例网站运行的挂架是:freebaseCharlie Rose

还有其他的web框架,但它们不太受欢迎。

值得注意的是,TurboGears现在建在Pylons上。我会说它试图包装更多的果汁,然后挂架,但它也会限制你更多,因为它会为你做出更多的决定。尽管如此,你可以远离它们,随心所欲地做事,但它始于一个更加有限的框架。

我会提到的最后一个是Zope,这是一个很大的商业支持的,已经有一段时间了,但我没有太多的经验。我相信这是一个不那么“有趣”的工作,但这只是我的感觉,你可以自己检查一下。总之,归结于您的工作流程,我个人认为Ruby不像Python那样享受Ruby语言,因此我很喜欢使用python进行Web开发,然后使用Ruby。你真的需要自己尝试一下,至少我提到的前两个,试着建立一个小网站,只是为了感受它。我所能说的就是根据我的经验,人们或者像Rails或者Python,不是两者都可以......

好运!

+0

感谢您的回复。真诚感谢。所以你说,如果我喜欢Ruby,我可能会喜欢Python。无论如何,我想我会给它一个镜头。再次感谢你 – Sid 2009-12-03 07:14:47

3

一个很好的web开发框架是Django

+0

但是从我读过的内容来看,它似乎更像是一个CMS。 – Sid 2009-12-02 18:31:38

+1

这不是一个CMS。它具有与Rails一样多的特性/功能,但人们喜欢它用于CMS,因为管理员非常棒。如果你不能利用管理员,那么比其他框架使用它的好处更少。它工作正常,只是不发光。 – 2009-12-02 18:41:50

3

Python中的两个主要框架是塔(与共准直Turbogears框架)和比较流行的Django。 Django为了完成基于内容的网站(CMS等)而跺脚,因为管理员非常优秀。

但是,您的问题让您听起来非常热衷于Ruby,我怀疑您会找到任何您喜欢的东西。它有两种方式:我在Rails上很漂亮,但非常喜欢Python和node.js。

3

在过去的一年里,我使用Python做了很多工作,主要是使用Django。我喜欢它,并同意其他人认为这对于内容较重的网站来说很棒。 Python及其所有框架都非常遵循一个正确的做法。我了解到,我对Django的大部分痛苦在于我错误地接近了一个问题,需要重构代码。如果你是一个精确的,逻辑驱动的思想家,你会很享受Python。

就使用Python代码库的网站而言,最大的可能是reddit及其家族网站。 Django的网站也是lists sites that use it。我没有使用Pylons的特权,但我也听到它的好处。

+1

Reddit是建立在主塔上,看看他们的源代码:http://code.reddit.com/browser/r2/r2 – 2009-12-02 22:29:42

+0

啊,我不知道。那个消息可能会让我去试试Pylons。 – Thomas 2009-12-03 14:47:24

1

清晰和易用是Pythons的一些最大卖点。在说,不同的Python web框架涵盖了几乎所有的范围,从小到简,一直到大而复杂的一切。

应该发现大多数Python Web框架比Rails具有更少的“魔力” - 也就是说,它们更清晰一点,从清晰的角度来看,它可以说更好。

在我看来,即使你喜欢Rails,也不打算离开,你还是应该偶尔尝试其他的语言和框架,给你一个更广阔的视角。

就我个人而言,我喜欢Turbogears2,但我认为Django会为Rails开发人员提供一个很好的起点,以便尝试其他方法。