你有没有遇到过这种状况?
数据库,各类表结构已经建立好了,甚至连数据都有了,此时,我要用Django管理这个数据库,ORM映射怎么办???html
Django是最适合所谓的green-field开发,即从头开始一个新的项目python
可是呢,Django也支持和之前遗留的数据库和应用相结合的。mysql
Django的数据库层从Python代码生成SQL schemas。可是对于遗留的数据库,你已经用于SQL schemas,这种状况下你须要为你已经存在的数据库表写模型(为了使用数据库的API),幸运的是,Django自带有经过阅读你的数据库表规划来生成模型代码的辅助工具 manage.py inspectdbsql
1.Django默认使用的是sqllit数据库?如何使用MySQL数据库?
#修改setting.py文件 DATABASE = { 'default':{ 'ENGINE':'django.db.backends.mysql', 'NAME':'数据库名', 'HOST':'数据库地址', 'PORT':端口, 'USER':'用户名', 'PASSWORD':'密码', } }
#因为Django内部连接MySQL数据库的时候默认的是使用MySQLdb的 #可是Python3中没有这个模块 #因此咱们要去修改他的project同名文件夹下的__init__文件 import pymysql pymysql.install_as_MySQLdb()
而后呢,咱们就须要根据数据库去自动生成新的models文件数据库
python manage.py inspectdb #简单能够看一下自动映射成的models中的内容
导出而且去代替models.pydjango
python manage.py inspectdb > models.py
这样你就会发如今manage.py的同级目录下生成了一个models.py文件app
使用这个models.py文件覆盖app中的models文件。工具
若是完成了以上的操做,生成的是一个不可修改/删除的models,修改meta class中的managed = True则能够去告诉django能够对数据库进行操做post
此时,咱们再去使models.py和数据库进行同步spa
python manage.py migrate