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实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
Python入门篇之字符串
Oct 17 Python
简单的python协同过滤程序实例代码
Jan 31 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
使用Flask集成bootstrap的方法
Jul 24 Python
python实现旋转和水平翻转的方法
Oct 25 Python
Python实现线性插值和三次样条插值的示例代码
Nov 13 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
May 21 Python
Opencv中cv2.floodFill算法的使用
Jun 18 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常用ODBC函数集(详细)
2013/06/24 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
CI框架中zip类应用示例
2014/06/17 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
js类 from qq
2006/11/13 Javascript
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
2017/04/19 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python中特殊函数集锦
2015/07/27 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
python中的时区问题
2021/01/14 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
明信片寄语大全
2014/04/08 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
Python中zipfile压缩包模块的使用
2021/05/14 Python
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL