Django数据库表反向生成实例解析


Posted in Python onFebruary 06, 2018

本文我们研究下如何在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'

总结

以上就是本文关于Django数据库表反向生成实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python连接字符串的方法小结
Jul 13 Python
Python类属性的延迟计算
Oct 22 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
Python3多线程操作简单示例
May 22 Python
Python FTP两个文件夹间的同步实例代码
May 25 Python
面向对象学习之pygame坦克大战
Sep 11 Python
pygame实现五子棋游戏
Oct 29 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
Django CSRF认证的几种解决方案
Mar 03 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 Python
使用python实现名片管理系统
Jun 18 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
Python使用functools实现注解同步方法
Feb 06 #Python
django中send_mail功能实现详解
Feb 06 #Python
Python打印“菱形”星号代码方法
Feb 05 #Python
Django权限机制实现代码详解
Feb 05 #Python
Django中的Signal代码详解
Feb 05 #Python
Python实现XML文件解析的示例代码
Feb 05 #Python
Python下载网络文本数据到本地内存的四种实现方法示例
Feb 05 #Python
You might like
mysql 性能的检查和优化方法
2009/06/21 PHP
PHP 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
python进阶教程之异常处理
2014/08/30 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
Sanic框架应用部署方法详解
2018/07/18 Python
pandas 将索引值相加的方法
2018/11/15 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
python实现飞行棋游戏
2020/02/05 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
数据库测试通常都包括哪些方面
2015/11/30 面试题
职业女性的职业规划
2014/03/04 职场文书
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
小学节能减排倡议书
2014/05/15 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
人事任命书范本
2015/09/21 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
Golang并发工具Singleflight
2022/05/06 Golang