将Django应用程序迁移到Google App Engine?

Roe*_*ler 9 python django google-app-engine

我正在开发一个Web应用程序并考虑Django,Google App Engine和其他几个选项.我想知道如果我开发一个完整的Django应用程序(假设它在专用服务器上运行),然后想要将其迁移到Google App Engine,我会产生什么样的"惩罚".

我对Google的数据存储有一个基本的了解,所以请假设我将为我的"独立"Django应用程序而不是关系数据库选择基于列的数据库,这样架构可以保持大部分相同而且不会是主要的因子.

另外,请假设我的应用程序没有维护大量数据,因此不需要迁移数十GB.我主要对代码和软件架构的影响感兴趣.

谢谢

Ste*_*sop 8

大多数(全部?)Django都可以在GAE中使用,所以你的主要任务是避免依赖于Django或GAE上没有的Python标准库.

你已经确定了明显的差异,即数据库,所以我假设你已经掌握了.另一个区别是与Google帐户的搭配,因此如果您愿意,可以通过app.yaml文件而不是代码执行相当数量的访问控制.但是,您不必使用其中任何一项,因此,如果您在切换到GAE时未设想切换到Google帐户,则没问题.

我认为标准库中的差异大部分可以从GAE没有I/O和没有C加速库这一事实中推断出来,除非明确说明,而且到目前为止我的经验是我期望在那里做的事情,那里.我不知道Django并没有在GAE上使用它(除了模板),所以我不能对此发表评论.

就个人而言,我可能不会以LAMP(其中P = Django)为目标,以便稍后迁移到GAE.我会一起开发,并尽可能确保差异保持在最顶层(配置)和最底层(数据模型).GAE版本不一定非常完美,只要您知道如何在需要时使其完美.

不能保证这比写入和移植更快,但我的猜测通常是这样.发现任何差异的最简单方法是运行代码,而不是依赖于GAE文档中没有遗漏任何内容,因此您可能会保存一些需要删除的错误.Python SDK与真正的App Engine相当接近,因此大多数时候您可以在本地运行所有或大部分测试.

当然,如果你最终决定不进行移植,那么你已经完成了不必要的工作,所以你必须考虑发生这种情况的可能性,以及你是否认为GAE开发是浪费你的时间,如果不需要的话.