好吧,可能很难给你一个很好的建议,因为你的项目描述很模糊 - 世界上什么是“50mb python毕业间隔召回评级系统的图片和文本程序”??? :) - 但我会尝试概述您列出的选项之间的区别:
Django是一种集成解决方案 - 它包括模板系统,ORM,表单框架等等。
由于这些东西都紧密相连,Django提供了一些细节,如内置的管理界面,可插拔的应用程序等。这将使传统网站的启动开发更容易,因为您不需要构建那些事情你自己。例如,要使用Django构建博客站点,您需要定义数据库模型,几个路由和几个视图,就是这样 - 您可以使用内置管理界面添加和编辑博客条目并使用身份验证进行身份验证可插拔认证模块。
但是当然需要付出代价 - 确保所有这些位一起工作,Django在某种程度上要求您使用Django提供的技术 - 即,您必须使用Django ORM定义模型并使用Django模板编写模板。您可以将不同的位换成其他内容,但是可以理解的是它们与框架的其余部分不兼容 - 即您可以使用另一个ORM(例如SQLAlchemy)来访问数据库,但是这些模型不能与Django的管理界面一起使用。
在某种程度上,Django还期望数据库表的特定结构(即它希望能够基于Python代码中定义的模型创建这些表),这将使得与现有数据库一起工作变得更加困难。另外,我理解它希望你有一个SQL数据库。
因此,在我看来,Django是构建“典型”Django网站(它是为新闻网站构建)的一个非常好的选择,它可以利用现有的可插拔应用程序和其他Django功能。
另一方面,Pyramid不要求您使用任何特定技术进行数据库访问 - 事实上,它根本不需要您拥有数据库 - 您可以构建一个应用程序,该应用程序可以处理存储在文件系统上的数据,对象数据库,如ZODB或某些分布式NoSQL存储。甚至可能是一些XML文件和一堆图像...你的想象力是你的极限
使用SQL数据库时,它不希望数据库具有某种结构。另外,推荐的Pyramid的ORM SQLAlchemy被认为比Django ORM更灵活,更强大
它不要求您使用任何特定的模板库或表单库,因此您可以选择最适合您需求的任何内容。
Pyramid甚至不要求你使用路由映射是大多数web框架的基石功能 - 除了路由映射Pyramid支持URL遍历,这可以是一种非常强大的方式来处理分层数据结构。
虽然不要求您使用任何特定技术,但Pyramid确实为典型用例提供了一些理智的模板。
这种灵活性的成本可能更难以找到现有的“应用程序”,可以插入您的自定义Pyramid网站而不做任何更改 - 尽管Pyramid中的优秀WSGI支持可以利用这一点。
在项目与repoze.bfg合并之前,Pylons现在称为金字塔。
uWSGI更像是一个为Pyramid应用程序(或其他符合WSGI标准的应用程序)提供服务的应用程序/协议
烧瓶 - 从未使用它,也许其他人会给你一些概述。
因此,简而言之,Django和Pyramid之间的选择归结为“我将能够在我的网站上使用多少Django内置功能”的问题 - 因为如果你不打算使用Django的自动管理员或者大量使用第三方可插拔应用程序 - 其他一切在Pyramid中更好:)