CherryPy和Django,你会选择哪一个以及为什么?
他们并不完全可以比较。CherryPy 提供了 URL 路由和请求/响应抽象,使得原型设计非常容易(虽然我认为基本的 mod_python 同样方便)。Django 是一个完整的 Web 应用程序 "堆栈",包括模板系统和对象关系映射。
Django非常庞大复杂,学习其中的函数、标签等内容需要花费大量时间。如果您完全掌握了Django,那么您绝对是一位计算机天才。 "full-stack" 意味着一切都可以使用,但必须花时间去寻找它 :(
CherryPy则轻巧干净得多,远没有那么复杂。比较起初步教程,1页纸和4页纸的差距就很明显了。这就像全能的Java和轻松简单的Perl之间的区别。
PS:Django的管理界面非常棒!!
虽然e.e. coli已经给出了被接受的答案(而且是一个很好的答案),但我想说CherryPy也可以直接实现WSGI。这意味着,与提到的mod_python方法(我相信它仍然是Apache-only解决方案)不同,它提供了对您的Web服务器的抽象。如果您一直使用Apache,则这并不是一个胜利,但如果您曾经想尝试轻量级Web服务器(例如Lighttpd),那么您可以在不必在Python应用程序中进行调整的情况下更换Web服务器。对我个人来说,这是一个巨大的胜利。
*我没有提到Django,因为我不是Django用户(我不喜欢“全栈”框架),所以我将任何关于它的评论留给它众多的粉丝 - 他们都比我更有资格回答有关它的问题。
选择Django,因为社区更加庞大。你会发现更多可用的第三方模块,并获得更多支持。
我会选择Django,因为它有着庞大的用户群和现有的模块(包括内置的管理界面)。但我认为CherryPy比Django更加灵活。你只需要查看可用选项,确定你想要做什么,并选择最好支持该功能的平台。
CherryPy是一个Web服务器“http框架”,而Django支持Web应用程序的前端至后端:它提供对象关系映射器、模板、会话管理,自动生成数据库模式和所有CRUD屏幕等功能。
我认为这两种技术都很不错,但我不是全栈框架的粉丝。CherryPy 更易于使用,也更加灵活。