Django数据库表反向生成实例解析
本文我们研究下如何在django中反向生成mysqlmodel代码,接下来我们看看具体介绍。
我们在展示djangoORM反向生成之前,我们先说一下怎么样正向生成代码。
正向生成,指的是先创建model.py文件,然后通过django内置的编译器,在数据库如mysql中创建出符合model.py的表。
反向生成,指的是先在数据库中createtable,然后通过django内置的编译器,生成model代码。
1、准备工作
创建django工程以及app
创建django工程,名字是helloworld
django-admin.pystartprojecthelloworld
创建app,名字是test
pythonmanage.pystartapphello
配置数据库
在settings.py的INSTALLED_APPS配置app
#Applicationdefinition 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、正向生成
在helloapp的目录下创建model.py
fromdjango.dbimportmodels classAlarmGroup(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()
执行命令正向生成
pythonmanage.pymakemigrations pythonmanage.pymigrate
可以到配置的数据库中,查看创建成功的表
3、反向生成
现在数据库中创建表
CREATETABLE`alarm_group`( `group_name`varchar(250)NOTNULL, `group_des`blob, `members`blob, `timestamp`datetimeNOTNULL, `on_duty`blob, `leader`blob, PRIMARYKEY(`group_name`) )ENGINE=MyISAMDEFAULTCHARSET=utf8
然后执行命令,生成model.py代码
pythonmanage.pyinspectdb
生成的代码model.py如下
classAlarmGroup(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() classMeta: managed=False db_table='alarm_group'
总结
以上就是本文关于Django数据库表反向生成实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!