django根据现有数据库表生成model

     阅读:48

题记:django如果要并和原有的数据库,那么就需要把现有数据库的表写入model.py中。

一,在setting.py中配置好连接数据库的参数

在setting中的DATABASESZ中配置默认参数,并在INSTALLED_APPS中导入模块名。

DATABASES = {
    'default':
    {
        'ENGINE': 'django.db.backends.mysql',    # 数据库引擎
        'NAME': 'jljupcs', # 数据库名称
        'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
        'PORT': 3306, # 端口
        'USER': 'root',  # 数据库用户名
        'PASSWORD': '', # 数据库密码
    }
}
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'conversion',
]

在主项目目录下导入pymysql

import pymysql
pymysql.install_as_MySQLdb()

在这里插入图片描述

二,打开cmd或pycharm的Terminal输入命令

输入命令:

python manage.py inspectdb > [项目路径]/models.py

在cmd中输入命令:
在这里插入图片描述
打开pycharm终端输入命令:
在这里插入图片描述
最后在models.py中自动创建了数据库表对应的类。
在这里插入图片描述

三,managed = False 删除或改为 managed = True

修改managed让之后修改models即可对数据库进行操作,在终端输入:

python manage.py inspectdb

提示如果你想让Django创建、修改和删除表,请删除’ managed = False '行
在这里插入图片描述

四,执行迁移

在终端输入:

python manage.py makemigrations
python manage.py migrate

在这里插入图片描述