GAE Webapp或Django-nonrel?

时间:2011-08-01 10:18:44

标签: google-app-engine django-nonrel web-application-project

我想托管我的个人网站,该网站主要有博客,图库组件以及代码片段和演示。我选择了GAE,因为它为合理规模的网站(即个人网站)提供免费托管服务。

我最初认为它可以在没有任何修改的情况下托管Django应用程序,因为我在Django中有一些经验,所以我很容易部署一个站点。然而,经过进一步的研究,我发现事实并非如此,并且需要一些“黑客”才能在GAE上主持一个Django网站。

此外,在查看一些webapps的实现时,似乎GAE可能更简单,并且不像文档那样令人生畏:https://github.com/ccarpenterg/todolist/wiki

所以我的问题是这些:

  • 使用Django而不是GAE Webapps有什么好处吗?
  • 如果甚至存在间接成本,那么这些收益是否值得花费?
  • 我是否认为GAE Webapps的学习曲线可以忽略不计,并且可能比Django应用程序更容易实现?

3 个答案:

答案 0 :(得分:7)

使用Django而不是webapp有几个很好的理由:

  • 可移植性 - 使用通用框架可以更轻松地在App Engine和传统托管服务提供商之间移动现有应用。
  • 功能 - Django是一个更强大的框架,有更多的铃声和口哨。
但是,缺点是你是二等公民。大多数Django用户都在使用SQL后端,大多数App Engine用户都使用webapp。框架和平台不对齐的位置对于两者的开发人员来说都不那么重要了。

除非你有令人信服的理由使用Django,否则我会坚持使用webapp。

答案 1 :(得分:2)

我即将完成我的第一个重要的appengine项目 - 在开发期间我从django non-rel切换到使用gae模型,但保留了django模板(和模板标签)。

对我来说,交易破坏者是非Rel目前不支持交易。虽然您应该将交易的使用保持在最低限度以提高效率,但它们有时很有用(特别是在减少用户的帐户余额时!)。

当我切换时,我意识到我真的根本不理解数据存储。只有在直接使用它之后才能看到非rel已隐藏的内容。这并不意味着一旦非rel支持交易(他们现在正在处理,我相信)我不会转回来,但我很高兴我确实直接使用谷歌类一段时间。

所以我建议你至少尝试一下“原始”商店的一些小实验,包括对象树和交易树。然后,一旦你更加确定你已经很好地理解了数据存储,那么考虑使用非rel,如果它适合(因为可移植性是一个不可否认的优势)。

请注意,我保留了django的模板和模板标签,以及url调度过程和常规配置。我确实看过gae框架,但它看起来并不像django给出的那样强大(例如,django的命名url模式非常棒)。

tl;博士:我很高兴我离开了非相关人员,但留在了django。这对我有用,但我会考虑将来回到非rel。

答案 2 :(得分:0)

我认为说GAE webapps的“学习曲线可以忽略不计”是错误的。虽然我发现它是一个优秀的Web应用程序平台,但它确实有许多与传统CGI + SQL平台截然不同的方面。

您可能能够像在任何其他提供商那样将AppEngine上的应用程序组合在一起,但是学习复杂性,重要的细节以及使AppEngine与众不同的细节和细节并非易事。 / p>