一尘不染

Django与其他Python Web框架?

django

我已经尝试了每个存在的Python Web框架,花了很长时间我才意识到没有一个灵丹妙药的框架,每个框架都有其优点和缺点。我从Snakelets入手,非常高兴能够将几乎所有内容都控制在较低的水平上,而不必大惊小怪,但是后来我发现了TurboGears,从那时起我一直在使用它(1.x)。Catwalk和Web控制台之类的工具对我来说是无价的。

但是随着TurboGears 2的问世带来了WSGI的支持,并且在阅读了Django和WSGI阵营之间的宗教辩论之后,我真的为“以正确的方式做事”(例如学习WSGI,花费宝贵的时间编写功能)而感到困惑。在Django和其他全栈框架中已经存在,而不是使用Django或一些为我做所有事情的高级框架。我可以看到后者的缺点非常明显:

  1. 在此过程中我什么都没学
  2. 如果我需要做任何低级别的事情,那将是一件痛苦的事情
  3. 仅使用身份验证的基本站点所需的开销是疯狂的。(IMO)
    所以,我想我的问题是,这是更好的选择,还是只是个见解,如果它以最小的麻烦实现了我想要的功能(我希望使用身份验证和CRUD接口,我的数据库)?我尝试了Werkzeug,Glashammer和朋友,但是AuthKit和Repoze吓坏了我,以及设置基本身份验证所需的步骤数。我看了看Pylons,但是似乎缺少文档,并且当引用诸如身份验证或CRUD界面之类的简单功能时,各种Wiki页面和文档似乎彼此矛盾,并且针对版本等使用了不同的技巧。

感谢S. Lott指出我还不够清楚。我的问题是:从长远来看,以下哪项是值得的,但短期内不会痛苦(例如,某种中间立场,有人吗?)-学习WSGI,还是坚持使用“含电池”框架?如果是后者,我将建议我是否应该再次尝试Django,还是坚持使用TurboGears 1.x,还是尝试其他框架。

另外,我尝试了CherryPy,但似乎找不到足够好的CRUD应用程序,因此无法立即使用它


阅读 340

收藏
2020-03-31

共2个答案

一尘不染

我建议再看看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扩展将使你的应用程序可以通过轻松的粘贴命令来扩展功能。

2020-03-31
一尘不染

jango和WSGI阵营之间的宗教辩论

似乎你对WSGI是什么以及Django是什么有点困惑。说Django和WSGI正在竞争,就像在说C和SQL正在竞争:你正在比较苹果和桔子。

Django是框架,WSGI是服务器与框架交互的协议(受Django支持)。最重要的是,学习直接使用WSGI有点像学习程序集。这是一次很棒的学习经历,但实际上并不是你应该为生产代码执行的操作(也不打算这样做)。

无论如何,我的建议是自己解决这个问题。大多数框架都有“一小时内制作Wiki /博客/民意测验”类型的练习。与每个人花一点时间,找出最喜欢的一个。毕竟,如果你不愿意尝试这些框架,又如何决定呢?

2020-03-31