首页 > 编程 > Python > 正文

Django数据库表反向生成实例解析

2020-01-04 15:57:20
字体:
来源:转载
供稿:网友

本文我们研究下如何在python/273207.html">python/303226.html">python/57310.html">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 modelsclass 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 makemigrationspython 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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表