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设计模式编程中建造者模式的使用
Mar 02 Python
python生成二维码的实例详解
Oct 29 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
Python使用Matplotlib实现雨点图动画效果的方法
Dec 23 Python
python 异或加密字符串的实例
Oct 14 Python
Python PyInstaller安装和使用教程详解
Jan 08 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
基于python实现检索标记敏感词并输出
May 07 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
Django自定义YamlField实现过程解析
Nov 11 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
Jan 10 Python
PyQt5通过信号实现MVC的示例
Feb 06 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
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
javascript实现微信分享
2014/12/23 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python中处理时间的几种方法小结
2015/04/09 Python
python实现马耳可夫链算法实例分析
2015/05/20 Python
使用python实现生成用户信息
2017/03/20 Python
python实现图书借阅系统
2019/02/20 Python
简单了解python的一些位运算技巧
2019/07/13 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
Skyscanner波兰:廉价航班
2017/11/07 全球购物
行政总经理岗位职责
2013/12/05 职场文书
商铺消防安全责任书
2014/07/29 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
Oracle用户管理及赋权
2022/04/24 Oracle