Google app engine GAE Webapp还是Django nonrel?

Google app engine GAE Webapp还是Django nonrel?,google-app-engine,django-nonrel,web-application-project,Google App Engine,Django Nonrel,Web Application Project,我想主持我的个人网站,主要是一个博客,画廊组件,以及代码片段和演示。我选择了GAE,因为它提供了一个合理规模的网站(即个人网站)免费托管 我最初认为它可以承载Django应用程序而不需要任何修改,而且由于我在Django方面有一些经验,所以部署一个站点对我来说很容易。然而,经过进一步的研究,我发现情况并非如此,需要一些“黑客”才能在GAE上托管Django站点 此外,在查看一些webapps的实现时,GAE似乎要简单得多,并且不像文档中描述的那样令人畏惧: 所以我的问题是: 使用Django胜

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

我最初认为它可以承载Django应用程序而不需要任何修改,而且由于我在Django方面有一些经验,所以部署一个站点对我来说很容易。然而,经过进一步的研究,我发现情况并非如此,需要一些“黑客”才能在GAE上托管Django站点

此外,在查看一些webapps的实现时,GAE似乎要简单得多,并且不像文档中描述的那样令人畏惧:

所以我的问题是:

  • 使用Django胜过GAE Webapps有什么好处吗
  • 如果有间接成本的话,这些好处值得间接成本吗
  • 我认为GAE网络应用程序的学习曲线可以忽略不计,而且可能比Django应用程序更容易实现,这是对的吗

我认为,说GAE webapps具有“微不足道的学习曲线”是不正确的。虽然我发现它是一个优秀的web应用程序平台,但它确实有许多方面与更传统的CGI+SQL平台截然不同


您可能能够像与任何其他提供商一样,将一个在AppEngine上工作的应用程序拼凑在一起,但了解AppEngine的复杂性、重要细节、差异和特殊细节并不是一件小事。

使用Django over webapp有几个很好的理由:

  • 可移植性-使用通用框架可以更轻松地在应用程序引擎和传统托管提供商之间移动现有应用程序
  • 功能-Django是一个更健壮的框架,具有更多的功能
但缺点是你是二等公民。大多数Django用户使用SQL后端,大多数应用程序引擎用户使用webapp。框架和平台不一致的地方对两者的开发者来说都不那么重要


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

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

对我来说,交易的破坏者是非rel目前不支持交易。虽然为了提高效率,您应该尽量减少事务的使用,但它们有时是有用的(特别是在减少我的用户的帐户余额时!)

当我切换时,我意识到我真的一点也不了解数据存储。只有在直接使用它之后,我才看到非rel所隐藏的东西。这并不意味着一旦non-rel支持事务(我相信它们现在正在处理中),我就不会切换回去,但我很高兴我确实直接使用了google类一段时间

因此,我建议您至少尝试一些“原始”存储的小实验,包括对象树和事务树。然后,一旦你确信你已经很好地理解了数据存储,如果合适的话,考虑使用NORE(因为便携性是不可否认的优势)。 注意,我保存了django的模板和模板标记,以及url调度过程和常规配置。我确实看过gae框架,但它似乎没有django提供的功能强大(例如,django的命名url模式非常棒)


tl;医生:我很高兴我离开了非rel,但留在了django。这对我来说是有效的,但我会考虑在将来再回到NEL。

当然,学习详细的技巧和事情总是要花费很多时间,但从判断来看,它似乎需要更少的认知开销和代码行来启动和运行网站。这意味着我可以将更多精力放在设计/模板方面,而不是后端。但总是有一个权衡,所以我想知道这个权衡到底是什么。谢谢你的回答。顺便说一句,我刚刚发现了Flask([link()),它看起来可能是一个很好的折衷方案。但最好还是留到另一个问题上来。关于webapp与您选择的框架,请看这应该可以解释“二等公民”Drew回答的部分。完全同意。我对Flask也有同样的问题。应该直接使用Webapp来了解整个事情。