Python程序到网站应用程序

Lam*_*des 2 python django cgi pyramid web

我正在开展一个项目,将图片和文本程序的50mb python Graduated interval召回评级系统转换为基于网站的应用程序.(然后围绕它设计一个网站)它需要连接到数据库以经常存储用户信息,因此它需要在服务器端运行正确吗?假设我什么都不知道,完成这个的最佳结构是什么?似乎有很多不同的选择,我感到迷茫.

我一直在使用CGI为原始的python代码创建一个Web UI.这甚至可以实现吗?

怎么样金字塔/ uWSGI/pylon/flask

还是Django?(虽然我被告知要避免这个项目)

Ser*_*gey 7

好吧,可能很难给你一个很好的建议,因为你的项目描述很模糊 - 世界上什么是"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数据库时,它不希望数据库具有某种结构.此外,SQLAlchemy,推荐的Pyramid的ORM,被认为比Django ORM更灵活,更强大

它不要求您使用任何特定的模板库或表单库,因此您可以选择最适合您需求的任何内容.

Pyramid甚至不要求你使用路由映射是大多数web框架的基石特征 - 除了路由映射Pyramid支持URL遍历,这可以是一种非常强大的方式来处理分层数据结构.

虽然不要求您使用任何特定技术,但Pyramid确实为典型用例提供了一些理智的模板.

这种灵活性的成本可能更难以找到现有的"应用程序",可以插入您的自定义Pyramid网站而不做任何更改 - 尽管Pyramid中的优秀WSGI支持可以利用这一点.

在项目与repoze.bfg合并之前,Pylons现在称为金字塔.

uWSGI更像是一个为Pyramid应用程序(或其他符合WSGI标准的应用程序)提供服务的应用程序/协议

烧瓶 - 从未使用它,也许别人会给你一些概述.

因此,简而言之,Django和Pyramid之间的选择归结为"我可以在我的网站上使用多少Django内置功能"的问题 - 因为如果你不打算使用Django的自动管理员或者大量使用第三方可插拔应用程序 - 其他一切在Pyramid中更好:)