python - Python/GAE社交网络/CMS?

标签 python django google-app-engine wxpython pinax

经过大量的研究,我提出了一个列表,列出了我认为构建基于python的社交网络/cms的最佳方法,但是对于其中一些组件如何组合在一起有一些问题。
在我询问特定组件之前,以下是要构建的站点的一些关键功能:
一个类似桌面的现代图形用户界面
未来托管高级html5子应用程序的能力(例如http://www.lucidchart.com
在功能和用户负载方面都有很高的可扩展性
用户能够对每个项目/组的内容进行密码保护和权限管理
典型的社交网络特征
能够在将来构建缩小的移动版本
下面是我正在考虑使用的工具列表:
谷歌应用引擎
蟒蛇
Django公司
皮纳克斯
睡衣
wxPython公司
还有问题:
谷歌应用程序引擎——这是一个尝试,因为许多拼图似乎已经就位。
问:我的选择是否受到限制?示例:数据存储不是关系型的?我应该等吗
对于业务版本下的SQL支持?
python——起初我考虑过“drupal”,但最终决定依赖于
可能不存在明天+它的模板系统的限制是一个不。学习它的API,也将是无用的其他地方。
然而,python看起来像一把瑞士军刀,可以用来处理几乎所有的事情。
问题:gae需要v.2.5.2,但python.org建议使用2.5.5。我要安装哪一个?
Django——V.0.96内置于GAE中。你似乎可以升级它。
问:有没有理由不升级到最新版本?如何解决缺乏HTML5支持的问题?
Pinax(http://pinaxproject.com)位于Django之上,似乎提供了大部分社交网络功能
任何人都会想要的。
问题:为什么不使用它?选择?
睡衣和睡衣——这部分有点混乱。这背后的基本理念是
建立一个图形用户界面在gae/python路由之前,我考虑过silverlight和flash,但是
HTML5应用程序使我确信,已经有足够多的程序运行在最新一批浏览器上,可以选择HTML5/JavaScript
取而代之的是路线。
问:如何扩展/补充Python/Django来构建类似HTML5的应用程序界面是睡衣和睡衣
怎么走?或者我应该彻底改变我的想法?
回答这些问题会有很大帮助如果这些都没有什么意义,请原谅我的无知。
我上一次尝试网络编程是在5-6年前,一个相当大的lamp网站。在桌面方面,
我的编程经验可以归结为非常高级的脚本语言,我一直在学习这些语言来完成非常具体的
任务:)

最佳答案

作为一个在GAE上部署了Django站点的人,我可以告诉您,您无法达到理想的解决方案GAE上的Django遗漏了Django的一些最好的方面,因为ORM不能正常工作最好的折衷办法是使用Django-nonrel重新添加功能。
但这也带来了它自身的问题:由于Django应用程序使用了大量的文件和内存,因此在应用程序变得空闲后,您的代码将很快从内存中卸载这意味着访问者在站点代码从内存中卸载后,在GEE解压缩拉链模块时,经常会在第一页视图上出现大约6秒的延迟。一旦你的网站很忙,这不会是一个问题,但当你的网站仍然年轻和未知,这将导致性能问题的外观。:。-(
其次,我还为一家公司工作,该公司构建了一个定制的CMS,并且可以告诉您,前80%是非常容易的,特别是在现代框架中然而,其余的可能是相当具有挑战性的。例如,用户角色和自定义内容类型是两个具有挑战性的方面。因此,强烈地考虑站在巨人的背后,寻找一个几乎完全满足您需求的cms或cms框架,然后扩展它来完成您需要的额外部分。
所以,也就是说,回答你的观点:
是的,你在限制你的选择,但那可能没问题。大多数开发人员对关系模型比nosql模型更熟悉。因此,更多的开源软件是在考虑到它的情况下开发的。此外,gae是一个封闭源码平台,对开源开发人员也是一种威慑。App Engine Oil是一个适合您的CMS框架,并针对应用程序引擎进行了优化还可以看看支持gae的web2py
我发现自己在使用python方面非常有效率。我以前写过很多PHP,现在发现它很难看也就是说,想想你要写的代码的总行数。如果您可以让drupal使用高质量的预先制作的模块,那么您可能只需要1/10的代码。顺便说一下,drupal的诀窍是只使用高质量的模块。查看历史记录,确保不使用开发版本。尝试联系irc上的作者。我并不是说你应该使用Drupal,但它有可能有一个可靠的网站(例如,whitehouse.gov)
你遇到了经典的gae/django问题。如果你使用0.96,你会得到很好的性能,但是你会错过很多1.0+的功能,你不会得到ORM和它的所有好处如果使用较新版本的django,就会遇到上述性能/内存问题。
我要为我的公司调查皮纳克斯。我用光标看了一眼。我不知道它是否对非关系模型后端有很好的支持你可能需要看看django nonrel。不过,你要知道,你会在这里投资于相对未经试验的解决方案。一小部分django用户使用pinax,还有一小部分(如果有的话)在非相关后端使用pinax。因此,您将处于上面第2点中提到的高度实验场景中。
我不能提供个人经验。我调查过几次睡衣。但是我喜欢写HTML CSS和JS我喜欢控制。我喜欢渐进式的增强,知道如果用户没有完全的能力,他们会看到什么。另外,我认为任何没有明确针对移动客户端的新应用程序都是在暗中攻击自己。多达15%的互联网用户只通过智能手机使用互联网。他们穿睡衣会有什么样的体验?
你没有提到这一点,但我在选择平台时考虑的一件事是厂商锁定和可移植性。如果您为gae开发了解决方案,但发现无法完成所需的任务,您是否可以将其移植到其他地方的另一个解决方案?要做多少工作如果您为gae编写了大量代码或对其体系结构做出了承诺,那么您将不得不使用gae或通过重写来移动。使用django或web2py可以帮助缓解这种情况。
也就是说,python gae的最大好处是,您可以非常高效地工作,立即看到您的结果,在您的站点很小的时候免费获得宿主,并获得极好的可伸缩性。这些都不是小事。那里有很大的价值。

关于python - Python/GAE社交网络/CMS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3680022/

相关文章:

python - 如何为 Google Cloud Storage 中存储的图像创建 PDF?

python - Python 中的重叠积分 - 将结果存储在数组中

python - Django表单小部件不显示错误

python - 为什么使用 TensorFlow 进行多元线性回归时会得到不同的权重?

Django ORM : filter by a list of objects

java - 如何在谷歌应用程序引擎(java)中创建Excel文件?

python - 使用 Pandas 从文本文件中提取标题数据

Django Rest Framework - 标记路由的额外操作

python - 完整性错误 : null value in column "city_id " violates not-null constraint

google-app-engine - 更改谷歌应用引擎名称