我已经尝试了每个存在的Python Web框架,花了很长时间我才意识到没有一个灵丹妙药的框架,每个框架都有其优点和缺点。我从Snakelets入手,非常高兴能够将几乎所有内容都控制在较低的水平上,而不必大惊小怪,但是后来我发现了TurboGears,从那时起我一直在使用它(1.x)。Catwalk和Web控制台之类的工具对我来说是无价的。
但是随着TurboGears 2的问世带来了WSGI的支持,并且在阅读了Django和WSGI阵营之间的宗教辩论之后,我真的为“以正确的方式做事”(例如学习WSGI,花费宝贵的时间编写功能)而感到困惑。在Django和其他全栈框架中已经存在,而不是使用Django或一些为我做所有事情的高级框架。我可以看到后者的缺点非常明显:
感谢S. Lott指出我还不够清楚。我的问题是:从长远来看,以下哪项是值得的,但短期内不会痛苦(例如,某种中间立场,有人吗?)-学习WSGI,还是坚持使用“含电池”框架?如果是后者,我将建议我是否应该再次尝试Django,还是坚持使用TurboGears 1.x,还是尝试其他框架。
另外,我尝试了CherryPy,但似乎找不到足够好的CRUD应用程序,因此无法立即使用它
我建议再看看TG2。我认为人们没有注意到自上一版以来取得的一些进步。除了可用的WSGI实用程序堆栈不断增长之外,还有很多TG2特定的项目需要考虑。以下是一些要点:
TurboGears管理系统 -使用声明性配置类可以完全自定义数据库的CRUD接口。它还与Dojo集成在一起,可为你提供无限滚动的表。服务器端验证也是自动的。管理界面使用RESTful网址和HTTP动词,这意味着可以很容易地通过编程连接到行业标准。
CrudRestController / RestController -TurboGears提供了一种结构化的方式来处理控制器中的服务。只需扩展我们的RestController,即可使用标准化的HTTP动词。将Sprox与CrudRestController 结合使用,你可以使用完全可自定义的自动生成的表格将Crud放置在应用程序中的任何位置。TurboGears现在支持MIME类型作为url中的文件扩展名,因此你可以让控制器使用与呈现html相同的界面来呈现.json和.xml(从控制器返回字典)
如果单击链接,你将看到我们用sphinx构建了一组新文档,该文档比过去的文档更广泛。
有了最好的Web服务器,ORM和模板系统(自行选择),就很容易看出TG对于希望快速上手并随着站点增长仍具有可伸缩性的人们有意义的原因。
人们通常认为TurboGears试图达到一个不断变化的目标,但是我们对发布保持一致,这意味着你不必担心为了获得所需的最新功能而费劲费力。面向未来:更多TurboGears扩展将使你的应用程序可以通过轻松的粘贴命令来扩展功能。
jango和WSGI阵营之间的宗教辩论
似乎你对WSGI是什么以及Django是什么有点困惑。说Django和WSGI正在竞争,就像在说C和SQL正在竞争:你正在比较苹果和桔子。
Django是框架,WSGI是服务器与框架交互的协议(受Django支持)。最重要的是,学习直接使用WSGI有点像学习程序集。这是一次很棒的学习经历,但实际上并不是你应该为生产代码执行的操作(也不打算这样做)。
无论如何,我的建议是自己解决这个问题。大多数框架都有“一小时内制作Wiki /博客/民意测验”类型的练习。与每个人花一点时间,找出最喜欢的一个。毕竟,如果你不愿意尝试这些框架,又如何决定呢?