Python / GAE社交网络/ cms?

时间:2010-09-09 19:45:39

标签: python django google-app-engine wxpython pinax

经过大量研究后,我想出了一个我认为可能是组建基于Python的社交网络/ cms的最佳方式的列表,但对这些组件中的某些组件如何组合起来有一些疑问。

在我询问特定组件之前,以下是要构建的站点的一些主要功能:

  • 现代几乎像桌面一样的gui
  • 未来托管高级html5子应用程序的能力(例如http://www.lucidchart.com
  • 功能和用户负载的高可扩展性
  • 用户密码保护和权限管理每个项目/组的内容的能力
  • 典型的社交网络功能
  • 将来建立缩小版移动版的能力

以下是我正在考虑使用的工具列表:

Google App Engine
蟒蛇 Django的 Pinax 睡衣 wxPython的

问题:

  1. 谷歌应用引擎 - 这是一个尝试切入追逐,因为许多拼图似乎已到位。 问题:我是否通过此选择限制了我的选择?示例:数据存储区不是关系型的?我应该等 对于Business版本下的SQL支持?

  2. Python - 我最初认为是'drupal',但最终决定依赖于可能的模块 明天可能不存在+其模板系统的限制是禁止的。学习它的API也会在其他地方无用 而Python似乎是瑞士军刀的语言 - 对几乎任何东西都有好处。 问题:GAE要求v.2.5.2,但python.org建议2.5.5。我该安装哪个?

  3. Django - v.0.96内置于GAE中。你似乎能够升级它。 问题:有没有升级到最新版本的原因?如何解决缺乏HTML5支持的问题?

  4. Pinax(http://pinaxproject.com)骑在Django之上,似乎提供了大部分社交网络功能 任何人都想要。 问题:不使用它的原因?替代?

  5. 睡衣和wxPython - 这是让人有点困惑的部分。这些背后的基本思想是能力 构建GUI。我在GAE / Python路线之前考虑过Silverlight和Flash,但是有一些工作版本 HTML5应用程序让我确信,在最新一批浏览器上运行ALREADY足以选择HTML5 / Javascript 而不是路线。 问题:如何扩展/补充Python / Django以构建类似app5的HTML5界面?是睡衣和wxPython 要走的路?或者我应该完全改变我的想法?

  6. 对某些/任何这些问题的回答会有很大帮助。如果任何一点没有多大意义,请原谅我的无知。 我在网络编程方面的最后一次冒险是大约5-6年前一个体面的LAMP网站。在桌面方面, 我的编程经验归结为非常高级的脚本语言,我一直在学习如何完成非常具体的工作 任务:)

1 个答案:

答案 0 :(得分:3)

作为将GAango网站部署到GAE的人,我可以告诉您,您无法达到理想的解决方案。关于GAE的Django错过了Django的一些最佳方面,因为ORM不能正常工作。最好的折衷方案可能是使用Django-nonrel重新添加功能。

这引入了它自己的问题:由于Django应用程序使用了大量文件和内存,因此代码将在应用程序空闲后从内存中快速卸载。这意味着,当GAE解压缩压缩模块时,访问者在从内存中卸载站点代码后,将经常在第一页视图上遇到大约6秒的延迟。一旦您的网站繁忙,这将不会是一个问题,但是当您的网站仍然年轻且未知时,它将导致性能问题的出现。 : - (

其次,我还为一家建立自定义CMS的公司工作过,可以告诉你前80%非常容易,尤其是现代框架。然而,其余的可能非常具有挑战性。例如,用户角色和自定义内容类型是两个具有挑战性的方面。因此,强烈考虑站在巨人的背后,找到几乎完全满足您需求的CMS或CMS框架,然后扩展它以满足您的需求。

所以,那说,回答你的观点:

  1. 是的,你限制了你的选择,但这可能没问题。大多数开发人员对关系模型比对nosql模型更熟悉。因此,在构建时会考虑更多的开源软件。此外,GAE是一个封闭源平台,也是对开源开发人员的威慑。 App Engine Oil是一个CMS框架,可能很适合您,并针对App Engine进行了优化。另请查看支持GAE的web2py

  2. 我发现自己用Python非常有效率。我以前写了很多PHP,现在我发现它很难看。也就是说,考虑一下你必须编写的代码总数。如果您可以使Drupal使用高质量的预制模块,您可能会发现自己只需要1/10的代码。顺便说一下,Drupal的技巧主要是只使用高质量的模块。查看历史记录,确保不要使用开发版本。尝试联系IRC的作者。我不是说你应该使用Drupal但是有可能有一个可靠的网站(例如,whitehouse.gov)

  3. 你遇到了经典的GAE / Django问题。如果你使用0.96就可以获得很好的性能,但是你会错过很多很棒的1.0+功能,而你却没有获得ORM及其所有优点。如果你使用较新版本的Django,你会遇到上面提到的性能/内存问题。

  4. 我即将为我的公司调查pinax。我已经对它做了很多光标。我不知道它是否对非关系模型后端有很好的支持。你可能需要看看django-nonrel。但是要知道你将在这里投资相对未经验证的解决方案。一小部分Django用户使用Pinax,甚至更小的百分比(如果有的话)在非关系后端使用它。因此,您将进入上面第2点提到的高度实验性情景。

  5. 我不能提供个人经验。我曾几次调查过睡衣。但是我喜欢编写HTML CSS和JS。我喜欢控制。我喜欢渐进式增强功能,并且知道如果用户没有完整功能,用户会看到什么。此外,我认为任何没有明确针对移动客户端的新应用程序都隐含着自己的脚步。多达15%的互联网用户仅通过智能手机使用互联网。他们穿着睡衣会得到什么样的经历?

  6. 您没有提到这一点,但在选择平台时我考虑的一件事是供应商锁定和可移植性。如果您为GAE开发解决方案并发现您无法按照自己的意愿行事,那么您是否可以将其移植到其他地方的其他解决方案?需要多少工作?如果您为GAE进行大量编码或对其架构做出承诺,那么您将坚持使用它或重写移动。使用Django或Web2py可以帮助减轻这种情况。

  7. 也就是说,Python GAE的最大好处是,您可以非常高效,立即查看结果,在您的网站很小的情况下免费托管,并获得出色的可扩展性。这些都不是小事。那里有很大的价值。