【问题标题】:First time Django database SQL or NoSQL?第一次使用 Django 数据库 SQL 还是 NoSQL?
【发布时间】:2012-08-18 05:15:41
【问题描述】:

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

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

【问题讨论】:

  • 您将在本地开发什么操作系统(例如 Windows、OS X 等)?

标签: python sql django nosql


【解决方案1】:

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

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

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

【讨论】:

  • note django-nonrel 是一个分支,并不是真正的模块。
  • 谢谢,我添加了一个注释。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    sqlite 是最简单的开始。如果您已经知道SQL,请掷硬币在MySQLPostgres 之间选择您的第一个项目!

    【讨论】:

      【解决方案4】:

      根据他们的 wiki,Django 确实做到了not officially support NoSQL databases(恕我直言,这是一个糟糕的决定)。因此,如果您在 Django 上采用 NoSQL 路线,您需要能够轻松处理项目的非标准分支和可能没有很好记录的错误。

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

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

      【讨论】:

        猜你喜欢
        • 2015-03-18
        • 2012-11-15
        • 1970-01-01
        • 1970-01-01
        • 2017-05-15
        • 1970-01-01
        • 2017-07-04
        • 1970-01-01
        • 2022-11-14
        相关资源
        最近更新 更多