我几乎已经尝试过所有现有的Python web框架,我花了很长时间才意识到没有一个银弹框架,每个框架都有自己的优缺点。我从Snakelets开始,非常享受能够在较低的层次上控制几乎所有的东西,而不必大惊小怪,但后来我发现了TurboGears,从那以后我一直在使用它(1.x)。像Catwalk和web控制台这样的工具对我来说是无价的。
但是,随着TurboGears2的推出,它带来了WSGI的支持,在阅读了Django和WSGI阵营之间的宗教辩论之后,我真的很纠结于“正确的做法”
所以,我想我的问题是,哪一个是更好的选择,还是仅仅是一个意见问题,如果Django实现了我想要的功能,那么我应该接受它并使用它吗(我想要身份验证和到我的数据库的CRUD接口)?我试过Werkzeug、Glashammer和friends,但是AuthKit和Repoze把我吓跑了,而且只需要设置基本身份验证就需要几个步骤。我看了一下Pylons,但是文档似乎缺乏,当引用一些简单的特性(比如身份验证或CRUD接口)时,各种wiki页面和文档似乎相互矛盾,对版本等有不同的黑客攻击。
多亏S.Lott指出我还不够清楚。我的问题是:从长远来看,以下哪一项是值得的,但从短期来看并不痛苦(例如,任何人,某种中间立场?)-学习WSGI,还是坚持使用“包含电池”的框架?如果是后者的话,我会很高兴有人建议我是否应该再给Django一次尝试,坚持使用TurboGears 1.x,或者尝试其他框架。
另外,我也试过CherryPy,但似乎找不到一个足够好的CRUD应用程序,我可以立即投入使用。
我要说的是,你对使用Django或类似的全堆栈框架“什么都不学”太悲观了,低估了文档和大型社区的价值。即使有了Django,仍然有一个相当大的学习曲线;如果它没有做您想要的任何事情,框架代码也不是不可穿透的。
一些个人经验:我花了很多年时间,断断续续地,在Twisted/Nevow、TurboGears和其他一些Python web框架上混日子。我从来没有完成过任何事情,因为框架代码一直没有完成,并且在我下面被重写,文档通常不存在或是错误的,唯一可行的支持是通过IRC(在IRC中,我经常得到很好的建议,但如果我问了太多问题,我会觉得自己很强)。
相比之下,在过去的几年里,我关闭了一些与Django网站。与我以前的经验不同,它们实际上是部署和运行的。Django开发过程可能缓慢而谨慎,但它会导致更少的比特旋转和不推荐,以及实际有用的文档。
几周前对Djangofinally went in的HTTP身份验证支持,如果这是您在3中所指的话。
我建议再看看TG2。我认为人们没有注意到自上一个版本以来所取得的一些进步。除了可用的WSGi堆栈可用之外,还有许多TG2特定项目要考虑。以下是几个亮点:
TurboGears Administration System-这个到数据库的CRUD接口可以使用声明性配置类完全自定义。它还与Dojo集成,为您提供无限可滚动的表。服务器端验证也是自动化的。管理界面使用restfulurl和HTTP动词,这意味着很容易使用行业标准进行编程连接。
CrudRestController/RestController-TurboGears提供了一种结构化的方式来处理控制器中的服务。通过扩展RestController,为您提供使用标准化HTTP动词的能力。将Sprox与CrudRestController结合起来,就可以使用完全可定制的自动生成表单将crud放在应用程序中的任何位置。 TurboGears现在支持将mime类型作为url中的文件扩展名,因此您可以让控制器render.json和.xml使用它用来呈现html的相同接口(从控制器返回字典)
如果你点击链接,你会看到我们有一套新的sphinx文档,它比过去的文档更广泛。
有了最好的web server、ORM和template system(选择你自己的)在幕后,我们很容易明白为什么TG对于那些想快速发展的人来说是有意义的,并且随着他们的站点的增长仍然具有可伸缩性。
TurboGears通常被视为试图达到一个移动目标,但我们在发布方面是一致的,这意味着您不必担心为了获得所需的最新功能而脱离主干。展望未来:更多TurboGears扩展,使您的应用程序可以轻松地使用粘贴命令来增加功能。
似乎你对WSGI和Django有点困惑。说Django和WSGI在竞争有点像说C和SQL在竞争:你在比较苹果和橘子。
Django是一个框架,WSGI是一个协议(Django支持该协议),用于说明服务器如何与框架交互。最重要的是,学习直接使用WSGI有点像学习组装。这是一个很好的学习经验,但它并不是真正应该为生产代码做的事情(也不是故意的)。
无论如何,我的建议是你自己想办法。大多数框架都有一个“一小时内创建一个wiki/blog/poll”类型的练习。花点时间和每个人在一起,找出你最喜欢的人。毕竟,如果你不愿意尝试不同的框架,你怎么能在它们之间做出决定呢?
相关问题 更多 >
编程相关推荐