python Django 之 Model 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
配置数据库
在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',
'hello',
]

在settings.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映射了数据库中的表名。
转载自:
http://www.cnblogs.com/kangoroo/p/7495880.html
python Django 之 Model ORM inspectdb(数据库表反向生成)的更多相关文章
- 数据库表反向生成(一) MyBatis-generator与IDEA的集成
在Dao层,通过数据库表反向生成,可以节省我们很多的精力,把更多的精力投入复杂的业务中. 数据库表反向生成,指的是通过数据库如mysql中的库表schema生成dao层读写表的基础代码,包括model ...
- 5.7 Liquibase:与具体数据库独立的追踪、管理和应用数据库Scheme变化的工具。-mybatis-generator将数据库表反向生成对应的实体类及基于mybatis的mapper接口和xml映射文件(类似代码生成器)
一. liquibase 使用说明 功能概述:通过xml文件规范化维护数据库表结构及初始化数据. 1.配置不同环境下的数据库信息 (1)创建不同环境的数据库. (2)在resource/liquiba ...
- 数据库表反向生成(二) Django ORM inspectdb
在前一篇我们说了,mybatis-generator反向生成代码. 这里我们开始说如何在django中反向生成mysql model代码. 我们在展示django ORM反向生成之前,我们先说一下怎么 ...
- PowerDesigner中SQL文件、数据库表反向生成PDM
1 反向生成PDM 1) 创建一个空的PDM模型(选择相应的DBMS): 2) 选择[Database]--[Update Model from Database ...
- efcore dbfirst 通过数据库表反向生成model
创建class library并设置为启动项目 使用nuget控制台,设置当前项目为新建的class library Install-Package Microsoft.EntityFramework ...
- Hibernate、Mybatis 通过数据库表反向生成java类和配置
一.通过MyEclipse生成Hibernate类文件和hbm.xml文件,或者annotation文件 (转载孙宇老师的文章) 二.Mybatis生成实体类和配置文件: myeclipse下生 ...
- MyEclipse从数据库表反向生成实体类之Hibernate方式(反向工程)
一.打开Myeclipse Database Explorer 二.新建[New..] 三.选择数据库,添加驱动 四.测试连接 五.选中数据库中的表单击右键选择[Hibernate Rever..] ...
- mysql数据库表反向生成modes类
一,如果你是windows,打开cmd,切换到desktop目录下 二,需要连接你的数据库,并且执行命令:sqlacodegen --outfile models.py mysql+pymysql: ...
- hibernate通过数据库表反向生成实体类
步骤一: window-->open Perspective-->MyEclipse Java Persistence 进行了上面的 操作后会出现一个视图DB Brower:MyEcl ...
随机推荐
- Python3基础 __len__,__getitem__ 记录列表中元素访问的次数 定制不可变序列,下标字典
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- fhq treap抄袭笔记
目录 碎碎念 点一下 注意!!! 模板 fhq treap 碎碎念 我咋感觉合并这么像左偏树呢 ps:难道你们的treap都是小头堆的吗 fhq真的是神人 现在看以前学的splay是有点恶心,尤其是压 ...
- 又见链表 --- 另一种Creat方式与反转
链表 作为一种数据结构,链表以其方便的增删查改功能,实现了无数经典有用的程序. 在之前的帖子里,我构建链表的方式是建立一个不储存数据的head节点,然后通过一边输入数据一边建立结点的方式构建整个链表. ...
- vim E437: terminal capability "cm" required
报错E437: terminal capability "cm" required 解决方法:# export TERM=xterm
- Z-score(Z值)的意义--转载
http://blog.sina.com.cn/s/blog_72208a6a0101cdt1.html http://www.docin.com/p-350677620.html http://we ...
- python 中的object与type的关系
object 和 type的关系很像鸡和蛋的关系,先有object还是先有type没法说,obejct和type是共生的关系,必须同时出现的. 在看下去之前,也要请先明白,在Python里面,所有的东 ...
- Cocos2d-x学习笔记(九)场景切换
这里只介绍两个简单的两个场景相互切换的方法. void pushScene(Scene *sn)和void popScene(Scene *sn)是一对.前者将当前场景放入到场景堆栈中,并切换到下一个 ...
- Python day10 global关键字、函数递归、匿名函数、map函数的用法详解
1.global关键字 引用全局变量,在局部全局变量改变,也会改变,global相当于指针,将地址指向全局变量的name name='littlepage' def littepage(): glob ...
- [ios]关于ios开发图片尺寸的建议
1.以后的应用程序,都使用AutoLayout, 不要再用绝对定位. 2.使用类似网页的方式来设计界面. 3.设计师好,程序员也好,尽量使用点这个单位进行思考,而不要使用像素.比如,你需要做44 x ...
- spring boot 定时备份数据库
第一步 :添加mysqldump.exe 进环境变量 第二步 新建一个spring boot 项目,连接数据库 spring.datasource.url=jdbc:mysql://localhos ...