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的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
Python第三方库的安装方法总结
Jun 06 Python
Python中的日期时间处理详解
Nov 17 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
Nov 06 Python
python+tkinter实现学生管理系统
Aug 20 Python
python DataFrame转dict字典过程详解
Dec 26 Python
Python3 元组tuple入门基础
Feb 09 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
pandas抽取行列数据的几种方法
Dec 13 Python
Python文件的操作示例的详细讲解
Apr 08 Python
如何理解及使用Python闭包
Jun 01 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
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
Python Grid使用和布局详解
2018/06/30 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
如何教少儿学习Python编程
2020/07/10 Python
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
区三好学生主要事迹
2014/01/30 职场文书
运动会获奖感言
2014/02/11 职场文书
代办委托书怎么写
2014/08/01 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
大一新生期末自我评价
2014/09/12 职场文书
服务员态度差检讨书
2014/10/28 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
详解JAVA的控制语句
2021/11/11 Java/Android
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python