如果你已经有已知的数据库及表格。 或者python manage.py inspectdb 数据库表格名> your_app_name/models.py https://www.cnblogs.com/kangoroo/p/7495880.html https://www.cnblogs.com/4-312/p/4626060.html DJANGO INSPECTDB使用inspectdb --通过已有数据库表生成 model.py 通过django的model.py 创建数据表 1.编写django创建数据库表语句 在数据库应用的models.py文件中,编写创建表语句。其中,class为表名。 2.在配置文件中配置要访问的数据库和使用的数据库应用 1)访问的数据库: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '172.18.100.3', 'NAME': 'db_resource', 'USER': 'res_admin', 'PASSWORD': 'res_admin', } } 2)使用的数据库应用: INSTALLED_APPS = ( 'resdb', ) 3. 运行命令,生成创建数据库表语句 Python manage.py sqlall resdb 4. 生成数据表 运行命令,根据已生成的数据库表语句生成数据表: Python manage.py syncdb 在前一篇我们说了,mybatis-generator反向生成代码。 这里我们开始说如何在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 django.db = models.CharField(primary_key=True, max_length=250= models.TextField(blank=True, null== models.TextField(blank=True, null== 执行命令正向生成 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' 这里面的db_table映射了数据库中的表名。 |
|