如何将旧数据库导入Django项目

做大作业时遇到这个问题,发现没有太好的教程,所以在此总结

本教程是面向萌新的实践性教程

首先创建一个project和一个app,如图

如何将旧数据库导入Django项目

下面假设我们有一个叫test.db的sqlite3数据库,我将演示如何将这个数据库导入项目

我们有一个基本假设就是我们的数据库内必须有一个属性为primary key 否则后续导入需要更麻烦的处理

首先我们要将数据库路径放入项目

数据库放入booksite项目根目录里,然后打开下属booksite文件夹的settings.py

如何将旧数据库导入Django项目

由于数据库是sqlite3,所以引擎不变,将划红线改为test.db,即自己数据库的名字

对了,不要忘记在settings的installed_app里加入app,这个应该都会就不演示了

下面我们把数据库的数据格式导入books的models.py

我们先用inspectdb检查一下数据库的数据格式

如何将旧数据库导入Django项目

可以看到django已经自动根据数据库表单生成了一个model

我们将它导入models.py

如何将旧数据库导入Django项目

注意,这里有一个坑,当我们试图用IDLE打开models.py时,

如何将旧数据库导入Django项目

这里可以用notepad++等软件转码到utf-8就可以

最后,我们利用migrage将django自带的管理网站导入数据库

如何将旧数据库导入Django项目

我们利用sqlite3语句检查数据库,发现已经迁移进了很多表

如何将旧数据库导入Django项目

ok,到这里基本已经完成了,现在我们检查数据是否真正被导入

先创建管理员账号

如何将旧数据库导入Django项目

然后在app的admin中将book类加入管理,将admin.py改为

如何将旧数据库导入Django项目

现在打开服务器,进入admin界面,用刚才建立的账户登录

如何将旧数据库导入Django项目

 

点开books,发现数据库里所有的项目都在

------------------------------------------------------------------------

好了,到这里我们已经完成了数据库的导入

本人水平有限,用词及解释不当之处想来诸多,敬请各位指出