0
点赞
收藏
分享

微信扫一扫

根据Mysql中的表反向生成Django字段Model

booksmg2014 2022-07-12 阅读 157


1. 先配置数据库

在 settings.py 文件中找到 DATABASES 配置项

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '28.104.87.140',
'PORT': '3306',
'NAME': 'simp', # database name
'USER': 'root',
'PASSWORD': '123456',
}
}

2. 执行下列命令

# cmd  ---> conda info -e  ---> activate SMT_AOI
# F: ---> cd ocv-simp(Django 项目root目录下)

# 使用这条命令,会根据设置的数据库中的表在自动生成对应的Model代码,并打印出来
python manage.py inspectdb

#当然也可以直接将打印的代码直接导入到指定的Model文件中
python manage.py inspectdb > my_mysql_web_app/models.py
# 前提是创建了app(my_mysql_web_app)并且在setting.py文件中注册过

#将指定的表生成对应的Model
python manage.py inspectdb --database default stu
python manage.py inspectdb --database default stu > my_mysql_web_app/models.py
python manage.py inspectdb stu > my_mysql_web_app/models.py

3.结果

# -*- coding:utf-8 -*-
from django.db import models
#file models.py 这是反向生成的models.py文件
# ps : 自动增长的 id 字段并不会增加进来,因为插入数据并不需要填
#ps:当model中如果没有自增列,则自动会创建一个列名为id的列
class stu(models.Model):
# 会自动创建一个列名为id的且为自增的整数列
sid = models.CharField(max_length=6, blank=True, null=True)
sname = models.CharField(max_length=50, blank=True, null=True)
age = models.IntegerField(blank=True, null=True)
gender = models.CharField(max_length=50, blank=True, null=True)

class Meta:
managed = False
db_table = 'stu'


举报

相关推荐

0 条评论