我是Django的新手(以及一般的数据库),我不知道如何构建以下内容.我将为我的网站提供的数据来源是:
一个博客
对于一些不同的游戏:
高分榜
用户创建的级别
如果我将数据存储在普通文件中,我只需要为上述每个文件提供一个文件.在Django中,理想情况下(我认为)我会为这些中的每一个都有一个单独的数据库,但显然还有多个数据库支持不适用于Django.我担心(不必要地?)将所有内容保存在一个数据库中有两个原因:
如果我在其中一个部分搞砸了,我不想搞砸剩下的数据.
当我在其中一个部分工作时,我希望能够自由地轻松改变模型.因为我已经知道实际上syncdb
并没有同步数据库,所以我决定在弄乱模型时最简单的事情就是简单地擦除数据库并重新开始.再一次,我担心弄乱其他部分.我看着南方,在应用程序的计划阶段似乎比它的价值更麻烦(但是我会在以后有实际有价值的数据时重新考虑).
部分问题是我不太习惯以二进制格式保存数据.我习惯于文本,所以我可以轻松地对它进行区分,在编辑器中进行修改等,而无需经过一些神奇的数据库界面(顺便说一句,我使用的是postgresql).
我的恐惧没有根据吗?人们通常如何处理这个问题?
对于它的价值,我完全理解你的挫败感,因为我在开始时经历了一个非常相似的思考过程.不幸的是,除了熟悉你将要使用的工具之外,你无能为力(无论如何都很容易).
首先,您不需要多个数据库来处理您正在做的事情 - 一个人会这样做.每个应用程序将在数据库中创建自己的表,这些表在某种程度上彼此隔离.正如czarchaic所提到的,python manage.py reset app_name
如果您更改模型,您可以重置其中一个.但是,您将丢失该数据.
要使用相对容易使用的格式获取数据,可以使用该命令python manage.py dumpdata > file_name.json
,然后稍后重新加载python manage.py loaddata file_name.json
.您可以将其用于备份,本地测试数据或作为穷人的迁移(提示:南方会更容易).
另一种选择是使用NoSQL数据库来处理您认为需要额外灵活性的任何数据.请记住,Django目前不支持任何这些.这意味着没有没有管理员支持或ModelForms.当然,拥有模型可能变得不必要.