0

我是 django 的新手,正在寻找部署,但我很迷茫。谷歌应用引擎对我来说似乎是个好主意,但我读过它是有限的,现在我只是想弄清楚它是什么。django 的所有功能都可以在应用引擎中使用吗?(ORM 等)。有没有更好、成本更低的替代品?我只用过mysql,云sql会不会让生活变得更难?

谢谢

4

1 回答 1

2

在决定一起使用 django 和 google app 引擎时,需要考虑三个主要变体,我将尝试列出优缺点:

  1. 标准 Django + App Engine 数据存储:如果您在应用引擎数据存储上使用普通 django,您将只能访问 Django 的模板和 URL 处理系统。您将无权访问 ORM,而必须直接使用应用引擎数据存储 ORM。
  2. 标准 Django + Cloud SQL:Google 支持将完整的 django 与基于 SQL 的数据库一起使用,而不是数据存储。如果您使用此选项,您将可以访问 Django 的所有功能,但您将无法获得应用引擎数据存储附带的自动数据库可扩展性。此外,对于小型项目,云 SQL 可能会更昂贵。
  3. Django-Nonrel + App Engine Datastore:一些有进取心的开发人员创建了一个名为 django-nonrel 的 django 分支,专门设计用于在应用引擎数据存储和 mongo db 等 no-sql 数据库上运行。使用此选项,您可以获得 django 的全部好处以及应用程序引擎数据存储的全部好处。请注意,您将无法执行 JOIN 和其他一些数据库操作,但这是应用引擎数据存储的功能,而不是 django-nonrel。

您选择哪一个当然取决于。对于不会扩大规模的小型一次性项目,我会选择选项#1,因为它可能是最容易设置的。对于将增长到相当大的中型项目,我建议使用选项#2,这样您就可以充分利用 django。但是,如果您认为您的项目会变得非常大(数据库至少有几 GB),那么选项 #3 可能是您最好的选择。

选项#3 是我的选择。我的数据存储已增长到数百 GB,并且我的可扩展性问题绝对为零。所有这一切,我开始使用非常好的 Django ORM 以及它附带的所有其他插件。

请注意,理论上第四个选项是 django-nonrel + cloud sql,但它几乎没有实际意义。

于 2014-06-24T03:27:53.423 回答