首次使用Django,数据库选SQL还是NoSQL?

3
我通过Udacity、Code Academy和Google大学学习了Python。现在我已经有足够的信心开始学习Django了。我的问题是,我应该在SQL数据库(SQLite或MySQL)上学习Django,还是应该在NoSQL数据库(如Mongo)上学习?
我已经阅读了关于两者的所有内容,但有很多我不理解的地方。Mongo听起来更好/更容易,但同时它对于那些已经非常熟悉关系型数据库并且正在寻找更灵活的东西的人来说更好/更容易。

你将在本地开发哪个操作系统(例如Windows,OS X等)? - Jeff
4个回答

6
作为初学者,使用sqlite可能是学习Django最简单的方法。您只需提供数据库的位置并指定sqlite3作为后端即可让它正常工作,这很好。如果您想稍后使用postgres,则需要更多的工作,但仍然可行。请参见评论中@JonathanVanasco的说明。
如果您最终想使用NoSQL DB,则Django目前不支持它。 这里是已识别的第三方Django后端列表。
您可以通过称为django-nonrel的第三方分支来使用Mongo,但此特定实现不支持ManyToManyFields并具有一些其他限制。您可以在此博客文章中阅读有关django-nonrel中Mongo的更多信息。有一些更非官方的关于django-nonrel的文档在这里

1
请注意,django-nonrel是一个分支,不是真正的模块。 - Skylar Saveland
谢谢,我已经添加了一条关于那个的注释。 - Kevin London

1

Postgres是Django在生产中的一个很好的数据库。sqlite在开发中也非常出色。在你的第一个Django网站上,你将会做很多工作来尝试不使用关系型数据库。

Django最大的优势之一是平滑的全栈集成、优秀的文档、贡献应用程序和应用程序生态系统。选择Mongo,你会失去很多这些东西。GeoDjango也假定SQL,并且真的很喜欢postgres/postgis - 而GeoDjango真的很棒。

如果你想使用Mongo,我建议你从像bottle、flask、tornado、cyclone等更少关注全栈集成和更少假定你使用某个ORM的框架开始。例如,Django教程假定你正在使用ORM与SQL DB。


0

sqlite 是最简单的入门方式。如果你已经了解 SQL,在你的第一个项目中可以抛硬币来选择使用 MySQL 或者 Postgres


0
根据他们的维基百科,Django 不正式支持NoSQL数据库(在我看来是一个糟糕的决定)。因此,如果您选择在Django上使用NoSQL,您需要习惯处理项目的非标准分支和可能没有很好文档记录的错误。
因此,对于Django的初学者来说,SQL是一个明显的选择。
话虽如此,我的第一个Django数据库是NoSQL,但我之前在其他平台上使用过SQL数据库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接