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的Django框架中实现Hacker News的一些功能
Apr 17 Python
Windows下为Python安装Matplotlib模块
Nov 06 Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
Python循环结构的应用场景详解
Jul 11 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
Python笔记之工厂模式
Nov 20 Python
Python PyPDF2模块安装使用解析
Jan 19 Python
浅析Python迭代器的高级用法
Jul 16 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
总结Python常用的魔法方法
May 25 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的hash算法介绍
2014/02/13 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
php实现留言板功能
2017/03/05 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
JS数组去重与取重的示例代码
2014/01/24 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
python中from module import * 的一个坑
2014/07/20 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
Python 中如何写注释
2020/08/28 Python
大学生志愿者感言
2014/01/15 职场文书
家长给孩子的表扬信
2014/01/17 职场文书
争论的故事教学反思
2014/02/06 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
医院学雷锋活动策划方案
2014/02/15 职场文书
导游词之江西赣州
2019/10/15 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
Python 匹配文本并在其上一行追加文本
2022/05/11 Python