当前位置:Gxlcms > 数据库问题 > 数据库表反向生成(二)django ORM inspectdb

数据库表反向生成(二)django ORM inspectdb

时间:2021-07-01 10:21:17 帮助过:29人阅读

创建django工程以及app

创建django工程,名字是helloworld

django-admin.py startproject helloworld

创建app,名字是test

python manage.py startapp hello  

配置数据库

在setting.py中配置数据库

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME: big_data,
        USER: root,
        PASSWORD: 1234,
        HOST: 10.93.84.53,
        PORT: 3306,
    }
}

 

2、正向生成

在hello app的目录下创建model.py

from django.db import models

class AlarmGroup(models.Model):
    group_name = models.CharField(primary_key=True, max_length=250)
    group_des = models.TextField(blank=True, null=True)
    members = models.TextField(blank=True, null=True)
    timestamp = models.DateTimeField()

执行命令正向生成

python manage.py makemigrations
python manage.py migrate

可以到配置的数据库中,查看创建成功的表

 

3、反向生成

现在数据库中创建表

CREATE TABLE `alarm_group` (
  `group_name` varchar(250) NOT NULL,
  `group_des` blob,
  `members` blob,
  `timestamp` datetime NOT NULL,
  `on_duty` blob,
  `leader` blob,
  PRIMARY KEY (`group_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

然后执行命令,生成model.py代码

python manage.py inspectdb

生成的代码model.py如下

class AlarmGroup(models.Model):
    group_name = models.CharField(primary_key=True, max_length=250)
    group_des = models.TextField(blank=True, null=True)
    members = models.TextField(blank=True, null=True)
    timestamp = models.DateTimeField()

    class Meta:
        managed = False
        db_table = alarm_group

这里面的db_table映射了数据库中的表名。

 

数据库表反向生成(二)django ORM inspectdb

标签:工程   mod   project   big   编译   blog   creat   logs   mys   

人气教程排行