[django同步数据库]Django去操作已经存在数据的数据库

Posted sqlserver-mysql

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[django同步数据库]Django去操作已经存在数据的数据库相关的知识,希望对你有一定的参考价值。

数据库,各种表结构已经创建好了,甚至连数据都有了,此时,我要用Django管理这个数据库,ORM映射怎么办???

Django是最适合所谓的green-field开发,即从头开始一个新的项目

但是呢,Django也支持和以前遗留的数据库和应用相结合的。

Django的数据库层从Python代码生成SQLschemas。但是对于遗留的数据库,你已经用于SQLschemas,这种情况下你需要为你已经存在的数据库表写模型(为了使用数据库的API),幸运的是,Django自带有通过阅读你的数据库表规划来生成模型代码的辅助工具manage.pyinspectdb

技术图片

#修改setting.py文件

DATABASE={

‘default‘:{

‘ENGINE‘:‘django.db.backends.mysql‘,

‘NAME‘:‘数据库名‘,

‘HOST‘:‘数据库地址‘,

‘PORT‘:端口,

‘USER‘:‘用户名‘,

‘PASSWORD‘:‘密码‘,

}

}

技术图片

技术图片

#由于Django内部链接MySQL数据库的时候默认的是使用MySQLdb的

#但是Python3中没有这个模块

#所以我们要去修改他的project同名文件夹下的__init__文件

importpymysql

pymysql.install_as_MySQLdb()

技术图片

然后呢,我们就需要根据数据库去自动生成新的models文件

pythonmanage.pyinspectdb#简单可以看一下自动映射成的models中的内容

导出并且去代替models.py

pythonmanage.pyinspectdb>models.py

这样你就会发现在manage.py的同级目录下生成了一个models.py文件

使用这个models.py文件覆盖app中的models文件。

如果完成了以上的操作,生成的是一个不可修改/删除的models,修改metaclass中的managed=True则可以去告诉django可以对数据库进行操作

技术图片

此时,我们再去使models.py和数据库进行同步

pythonmanage.pymigrate

以上是关于[django同步数据库]Django去操作已经存在数据的数据库的主要内容,如果未能解决你的问题,请参考以下文章

利用Django去操作数据库并完成简易的登录及编辑功能

Django学习--数据库同步操作技巧

Django使用已经存有数据的mysql数据库

django下models.py数据库同步操作技巧

9.Django里的数据同步migrate命令

Django笔记三十七之多数据库操作(补充版)