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实现快速多线程ping的方法
Jul 15 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
python使用生成器实现可迭代对象
Mar 20 Python
django的登录注册系统的示例代码
May 14 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
python selenium登录豆瓣网过程解析
Aug 10 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
python的Jenkins接口调用方式
May 12 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学习 函数 课件
2008/06/15 PHP
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
php判断linux下程序问题实例
2015/07/09 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
python查看微信好友是否删除自己
2016/12/19 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
武汉某公司的C#笔试题面试题
2015/12/25 面试题
高中生学习总结的自我评价范文
2013/10/13 职场文书
群众路线剖析材料
2014/02/02 职场文书
党校学习个人总结
2015/02/15 职场文书
违纪学生保证书
2015/02/27 职场文书
心术观后感
2015/06/11 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
Python自然语言处理之切分算法详解
2021/04/25 Python
python中if和elif的区别介绍
2021/11/07 Python
详解python的异常捕获
2022/03/03 Python