需求分析
有这样一种情况, 你的数据库和表结构早就建好了, 可能数据都有了, 这时候需要用Django 的ORM模型来管理操作表和数据, 这个时候ORM映射该怎么做呢?
好在django为我们提供了 manage.py inspectdb 这个辅助工具, 专门用来阅读你的数据库来反向生成ORM映射类, 你只需要在settings.py 文件中配置好数据库之后就可以反向生成了
注意: 此方法只适用 Mysql , 其他数据库未验证
第一步
配置数据库:
DATABASE = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'数据库名',
'HOST':'数据库地址',
'PORT':端口,
'USER':'用户名',
'PASSWORD':'密码',
}
}
第二步
反向生成
python manage.py inspectdb
# 操作时候会在控制台输入 反向生成的models代码
python manage.py inspectdb > models.py
# 将反向生成的models代码 导出到 models.py 这个文件中
操作之后会在manage.py 同目录下生成一个models.py 文件, 你可以用生成的models.py 去替代自己app中的models.py
注意:
这里生成的是一个不可修改/删除的models, 如果要用ORM 执行修改或删除操作, 还需要做以下操作:
class Meta:
managed = False
db_table = 'black_list'
# 将Meta 类中的managed 的值改为True
#修改后的如下
class Meta:
managed = True
db_table = 'black_list'
修改后执行 python manage.py migrate 同步数据后就大功告成啦
~ Over 人生苦短,我用Python MM~