当前位置: 首页 > news >正文

正向生成数据库mysql_数据库表反向生成 Django ORM inspectdb

这里我们开始说如何在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

48304ba5e6f9fe08f3fa1abda7d326ab.png

#Application definition

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

]

48304ba5e6f9fe08f3fa1abda7d326ab.png

在settings.py中配置数据库

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

2、正向生成

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

from django.db importmodels

classAlarmGroup(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()

48304ba5e6f9fe08f3fa1abda7d326ab.png

执行命令正向生成

python manage.py makemigrations

python manage.py migrate

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

3、反向生成

现在数据库中创建表

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

python manage.py inspectdb

生成的代码model.py如下

48304ba5e6f9fe08f3fa1abda7d326ab.png

classAlarmGroup(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()

classMeta:

managed=False

db_table= 'alarm_group'

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

python manage.py inspectdb > app01\models.py

坑!!! windows下为‘\’

相关文章:

  • java 泛型定义_Java中泛型定义的含义
  • 字符串转数组java_java数组与字符串相互转换、整型与字符串相互转换【详解】...
  • 简单描述mysql视图的概念_介绍mysql中视图的概念及操作
  • java web 与asp.net_JavaWeb与Asp.net工作原理比较分析
  • java 对象序列化磁盘_java对象的序列化以及反序列化详解
  • java --help_java help
  • java linux 接口_理解Java中的接口
  • java dns 缓存_Java DNS解析缓存的过期策略配置
  • java 二叉树图形_java实现二叉树以及实例
  • java tree的使用_Java TreeSet的使用
  • java矩形_JAVA实现矩形(长方形)的周长面积计算
  • phymeleaf 除取整_【Bug档案01】Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h...
  • python 矩阵乘法梯度下降_使用python numpy矩阵类的梯度下降
  • oracle 存储过程调用java_oracle 存储过程调用java一
  • java春天_java – 春天的Aspectj
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Git 使用集
  • httpie使用详解
  • MaxCompute访问TableStore(OTS) 数据
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • passportjs 源码分析
  • session共享问题解决方案
  • SpringCloud集成分布式事务LCN (一)
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 前端相关框架总和
  • 十年未变!安全,谁之责?(下)
  • 收藏好这篇,别再只说“数据劫持”了
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $.ajax中的eval及dataType
  • (Git) gitignore基础使用
  • (Java数据结构)ArrayList
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)fiber的基本认识
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (算法设计与分析)第一章算法概述-习题
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)VC++中ondraw在什么时候调用的
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .axf 转化 .bin文件 的方法
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .sh
  • ??在JSP中,java和JavaScript如何交互?
  • @Repository 注解
  • @RunWith注解作用
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现