3

我一直在通过 Udacity、Code Academy 和 Google 大学学习 Python。我现在有足够的信心开始学习 Django。我的问题是我应该在 SQL 数据库(SQLite 或 MySQL)上学习 Django;还是我应该在 Mongo 等 NoSQL 数据库上学习 Django?

我已经阅读了这两个方面的所有内容,但有很多我不明白。Mongo 听起来更好/更容易,但同时对于那些已经非常了解关系数据库并正在寻找更敏捷的东西的人来说,它听起来更好/更容易。

4

4 回答 4

6

作为初学者,使用sqlite. 您只需要为数据库提供一个位置并将 sqlite3 指定为您的后端即可使其正常工作,这很好。如果你想postgres稍后使用,它会做更多的工作,但它仍然是可行的。请参阅评论中的@JonathanVanasco 的注释。

如果你想最终使用 NoSQL DB,Django 目前不支持它。是公认的 3rd 方 Django 后端列表。

您可以通过称为django-nonrel的第三方分支使用 Mongo ,但此特定实现不支持 ManyToManyFields 并且还有一些其他限制。您可以在此博客文章中阅读更多关于 django-nonrel 中的 Mongo 的信息。这里有一些关于 django-nonrel 的非官方文档。

于 2012-08-22T18:17:17.523 回答
1

Postgres 是 Django 在生产中的一个很好的数据库。sqlite 开发起来很棒。您将做很多工作来尝试在您的第一个 Django 站点上不使用 RDBMS。

Django 的最大优势之一是流畅的全栈集成、出色的文档、贡献应用程序、应用程序生态系统。选择 Mongo,你会失去很多。GeoDjango 还假设 SQL 并且真的比其他人更喜欢 postgres/postgis - 而且 GeoDjango 真的很棒。

如果您想使用 Mongo,我可能会建议您从诸如瓶子、烧瓶、龙卷风、旋风或其他与全栈集成较少的东西开始,并且较少假设您使用特定的 ORM。例如,Django 教程假设您将 ORM 与 SQL DB 一起使用。

于 2012-08-22T18:12:32.513 回答
0

sqlite是最简单的开始。如果您已经知道为您的第一个项目SQL投掷硬币以进行选择!MySQLPostgres

于 2012-08-22T18:29:34.960 回答
0

根据他们的 wiki,Django 不正式支持 NoSQL 数据库(恕我直言,这是一个糟糕的决定)。因此,如果您在 Django 上使用 NoSQL 路线,您需要能够轻松处理项目的非标准分支和可能没有很好记录的错误。

所以对于 Django 的初学者来说,SQL 是一个显而易见的选择。

也就是说,我在 Django 上的第一个数据库是 NoSQL 数据库,但我之前在其他平台上使用过 SQL 数据库。

于 2017-02-13T12:45:29.737 回答