第一次使用Django数据库SQL还是NoSQL?

时间:2012-08-22 18:07:17

标签: python sql django nosql

我一直在通过Udacity,Code Academy和Google University学习Python。我现在有足够的信心开始学习Django了。我的问题是我应该在SQL数据库上学习Django - 无论是SQLite还是MySQL;或者我应该在NoSQL数据库上学习Django,例如Mongo?

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

4 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:1)

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

Django最大的优势之一是流畅的全栈集成,优秀的文档,contrib应用程序,应用程序生态系统。选择Mongo,你会失去很多。 GeoDjango也假设SQL并且非常喜欢postgres / postgis高于其他人 - 而GeoDjango真的很棒。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

根据他们的wiki,Django做not officially support NoSQL databases(恕我直言的决定不好)。因此,如果你在Django上使用NoSQL路径,那么你需要习惯于处理项目的非标准分支以及可能没有很好记录的错误。

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

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