码迷,mamicode.com
首页 > 其他好文 > 详细

django 反向生成models.py

时间:2019-11-13 22:09:04      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:gpo   ESS   ini   rate   creat   目录   root   art   not   

我们在展示django ORM反向生成之前,我们先说一下怎么样正向生成代码

正向生成,指的是先创建model.py文件,书写类和各种字段,然后执行数据库迁移,在数据库如mysql中创建出符合model.py的表

反向生成,指的是先在数据库中create table,然后执行反向生成命令,根据已经存在的表生成model代码

一 准备工作

创建django项目以及app

创建django项目,名字是helloworld

django-admin.py startproject helloworld

创建app,名字是app01

python manage.py startapp app01  

配置数据库

在settings.py的INSTALLED_APPS注册app

# Application definition  
  
INSTALLED_APPS = [  
    django.contrib.admin,  
    django.contrib.auth,  
    django.contrib.contenttypes,  
    django.contrib.sessions,  
    django.contrib.messages,  
    django.contrib.staticfiles,  
    ‘app01,  
]  

在settings.py中配置数据库

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

二 正向生成

在app01目录下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

三 反向生成ORM

先在数据库中创建表

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`)
) ENGIN

然后执行命令,生成model.py代码(加上app01可直接生成到models.py里面)

python manage.py inspectdb

生成的model代码如下

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

将model导入到app01的model.py文件里

python manage.py inspectdb > app01/models.py

 

 

django 反向生成models.py

标签:gpo   ESS   ini   rate   creat   目录   root   art   not   

原文地址:https://www.cnblogs.com/xp1315458571/p/11853403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!