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

前一篇我们说了,mybatis-generator反向生成代码。

这里我们开始说如何在django中反向生成mysql model代码。

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

正向生成,指的是先创建model.py文件,然后通过django内置的编译器,在数据库如mysql中创建出符合model.py的表。

反向生成,指的是先在数据库中create table,然后通过django内置的编译器,生成model代码。

1、准备工作

创建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 makemigrationspython 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映射了数据库中的表名。

时间: 2024-10-03 22:16:03

数据库表反向生成(二)django ORM inspectdb的相关文章

Django使用数据库表反向生成models类

目录 Django根据已有数据库表反向生成models类 一. 创建一个Django项目 二.修改settings文件 根据数据库数据生成对应的models模型类 生成模型文件 将模型文件导入到app当中 Django根据已有数据库表反向生成models类 一. 创建一个Django项目 django-admin startproject 'xxxx' 二.修改settings文件 在setting里面设置你要连接的数据库名称,地址,账号密码之类的信息,和创建新项目的时候一致 DATABASES

数据库表反向生成(一)mybatis-generator与IDEA的集成

在Dao层,通过数据库表反向生成,可以节省我们很多的精力,把更多的精力投入复杂的业务中. 数据库表反向生成,指的是通过数据库如mysql中的库表schema生成dao层读写表的基础代码,包括model(entity)和dao(mapper). 在本文中我先介绍java中mybatis-generator的反向生成.我们在下一篇文章中会介绍django中ORM的反向生成. mybatis-generator的反向生成有两种方式 1)源码打包生成mybatis-generator.jar,通过执行j

PowerDesigner中SQL文件、数据库表反向生成PDM

1      反向生成PDM 1)        创建一个空的PDM模型(选择对应的DBMS): 2)        选择[Database]--[Update Model from Database-]菜单: 1.1    使用SQL文件 1)        在新窗口选择对应[Using script files]--[(Add Files)].然后再弹出窗口选择对应的SQL文件.点击打开,完成选择. 2)        点击[确定]生成. 1.2    使用数据源 1)        选择数

hibernate通过数据库表反向生成实体类

步骤一: window-->open Perspective-->MyEclipse Java Persistence 进行了上面的 操作后会出现一个视图DB Brower:MyEclipse Derby, 点击右键新建new一个在出现的面板Database Driver中,Driver template中选择Oracle(ThinDriver)这里以oracle软件为例,如果是mysql就选mysql的 driver name可以随意取,Connection URL就写平常的JDBC中的 U

Hibernate、Mybatis 通过数据库表反向生成java类和配置

一.通过MyEclipse生成Hibernate类文件和hbm.xml文件,或者annotation文件    (转载孙宇老师的文章) 二.Mybatis生成实体类和配置文件: myeclipse下生成实体类和map配置文件: 1.新建一个maven工程 2.修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

(转)OpenSystemArchitect - 根据数据库表逆向生成数据模型

原文地址:http://www.cnblogs.com/zhaojin/archive/2011/04/14/2016478.html OpenSystemArchitect - 根据数据库表逆向生成数据模型 OpenSystemArchitect.exe是代替PowerDesign的开源程序 1 从http://www.codebydesign.com/SystemArchitect/downloads/下载文件. 2 解压缩到任意文件,不需要安装,直接点击执行OpenSystemArchit

FineUI之使用SQL脚本从数据库表中生成相应的输入控件

在WEB开发时,经常需要依据数据库表中的字段建立相应的输入控件,来获取输入的数据.每次都需要按字段来敲,显然太低效,而且容易出错.这里提供一个SQL脚本生成相应输入控件的方法. USE DBDemo DECLARE @TEMP_TABLE_NAME NVARCHAR(512) DECLARE @WIDTH NVARCHAR(50) SET @TEMP_TABLE_NAME='Stuff' SET @WIDTH='200' SELECT '<f:'+TOKEN+' runat="server

magento产品数据库表结构分析[magento二次开发]

数据库-- 产品数据库表结构分析 product 1数据库实体表:catalog_product_entity. 属性:entity_id,entity_type_id,attribute_set_id,type_id,sku,has_options,required_options,created_at,updated_at. 2next层-->属性类型表join(entity_id),通过entity_id和catalog_product_entity关联. catalog_product_

FineUI之使用SQL脚本从数据库表中生成对应的输入控件

在WEB开发时.常常须要根据数据库表中的字段建立对应的输入控件,来获取输入的数据.每次都须要按字段来敲,显然太低效.并且easy出错.这里提供一个SQL脚本生成对应输入控件的方法. USE DBDemo DECLARE @TEMP_TABLE_NAME NVARCHAR(512) DECLARE @WIDTH NVARCHAR(50) SET @TEMP_TABLE_NAME='Stuff' SET @WIDTH='200' SELECT '<f:'+TOKEN+' runat="serv