关于Django的core first 、db first
db first
根据数据库的表生成类
django :
python manage.py inspectdb
code first
根据类创建数据库表;
django:
python manage.py makemigrations
python manage.py migrate
配置数据库
setting.py
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'sqldb01', 'USER': 'root', 'PASSWORD': '123456', 'HOST': '127.0.0.1', 'PORT': '3306', } }
关于db first(反向生成)
先在数据库创建表
CREATE TABLE users( name VARCHAR(32), ) extra VARCHAR(16), )ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后执行命令生成model代码
python3 manage.py inspectdb
生成的代码model.py如下
class Users(models.Model): name = models.CharField(max_length=32, blank=True, null=True) extra = models.CharField(max_length=16, blank=True, null=True) class Meta: managed = False db_table = 'users'
这里面的db_table映射了数据库中的表名。
可能会报一个错误
Error loading MySQLdb module: No module named 'MySQLdb'. Did you install mysqlclient or MySQL-python?
只需要安装一下.,再重新运行一下就好了
pip3 install mysqlclient
code first(正向生成)
在app下model.py,写model.py代码即可
执行命令生成表
python3 manage.py makemigrations
python3 manage.py migrate