django如何连接已存在数据的数据库,并自动生成models类
2020-01-12 本文已影响0人
WeiFong
今天在使用Django 连接数据库时遇到不少问题,网上大多都是从头开始一个新的项目设计model类生成迁移文件,然后进行数据迁移。
最后找了许多资料,发现Django同时也支持和以前遗留的数据库和应用相结合的。
Django的数据库层从Python代码生成SQL schemas。但是对于遗留的数据库,你已经用于SQL schemas,这种情况下你需要为你已经存在的数据库表写模型(为了使用数据库的API),幸运的是,Django自带有通过阅读你的数据库表规划来生成模型代码的辅助工具 manage.py inspectdb
首先修改setting.py文件,将DATABASE 信息配置为你需要连接的数据库
DATABASE = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'数据库名',
'HOST':'数据库地址',
'PORT':端口,
'USER':'用户名',
'PASSWORD':'密码',
}
}
注意事项
- 由于Django内部链接MySQL数据库的时候默认的是使用MySQLdb的
- 但是Python3中没有这个模块
- 所以我们要去修改他的project同名文件夹下的init文件,使用pymysql进行伪装
import pymysql
pymysql.install_as_MySQLdb()
然后呢,我们就需要根据数据库去自动生成新的models文件,导出并且去代替models.py
python manage.py inspectdb > models.py