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

我对Google的数据存储有基本的了解,因此请假定我将为我的“独立” Django应用程序选择一个基于列的数据库,而不是关系数据库,以便该架构可以保持基本相同并且不会成为主要数据库因素。

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

谢谢

最佳答案

Django的大多数(全部?)都可以在GAE中使用,因此您的主要任务是避免基于Django或Python标准库中GAE上没有的任何内容来进行设计。

您已经确定了明显的不同之处,那就是数据库,因此我认为您是最重要的。另一个区别是与Google帐户的关联,因此,如果需要,您可以通过app.yaml文件(而不是代码)进行大量的访问控制。不过,您不必使用任何这些,因此,如果您不打算在切换到GAE时打算切换到Google帐户,就没有问题。

我认为标准库中的差异主要可以归因于以下事实:除非明确说明,否则GAE没有I/O和C加速库,而到目前为止,我的经验是我一直期待在那里那里。我不了解Django,也没有在GAE上使用它(除了模板),因此我无法对此发表评论。

就个人而言,我可能不会针对LAMP(其中P = Django)而打算稍后再迁移到GAE。我将为两者共同开发,并尝试确保尽可能将差异保持在最顶层(配置)和最底层(数据模型)。 GAE版本不一定必须是完美的,只要您知道如何在需要时使其完美即可。

不能保证这比编写然后移植要快,但是我想通常是这样。找出任何差异的最简单方法是运行代码,而不是依靠GAE文档中不丢失任何内容,因此您可能会节省一些需要挑剔的错误。 Python SDK非常适合真实的App Engine,因此您的所有或大部分测试都可以在大多数时间在本地运行。

当然,如果您最终决定不移植,则您做了不必要的工作,因此您必须考虑发生这种情况的可能性,以及是否认为GAE开发如果不需要则浪费您的时间。

关于python - 将Django应用程序迁移到Google App Engine?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1118761/

10-12 18:25