ORM模型类
一:编写模型类
单表
from django.db import models # Create your models here. class Student(models.Model): # 自增字段,生成int类型,且为主键,自增主键默认会给你加,你可以不写 id = models.AutoField(primary_key=True) # 必须指定max_length name = models.CharField(max_length=32)
多表
from django.db import models # Create your models here. class Student(models.Model): # 自增字段,生成int类型,且为主键 id = models.AutoField(primary_key=True) # 必须指定max_length name = models.CharField(max_length=32) sex = models.CharField(max_length=2) class_room = models.ForeignKey("Classroom", null=True) # 创建外键 class Classroom(models.Model): name = models.CharField(max_length=32)
二:注册app
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', "classes" ]
发现有许多的app,那么是默认的app,他们里面也同样有models.py文件
三:数据库迁移
1.python manage.py makemigrations 提前将创建数据表的过程记录下来,相当于备份
2.python manage.py migrate 将刚才记录的操作过程到MySQL数据库里面执行一遍,就会生成表了。
自定义表上面的是权限表,每个app都有个后台登陆页面,让你可以在web页面上对数据进行操作,不需要操作navicat
下面的表是,记录登陆日志,文本类型,迁移记录,django_session以后看,很有用。
四:修改表
修改模型类就可以了,例如添加字段,删除字段,修改字段类型,设置默认值等等。
新增列的时候注意
新增一列时,表中是没有数据的,此时django不知道你想填充什么数据。
选择1后输入一个默认值,然后执行迁移命令就可以了。
选择2就会退出,需要你在models.py文件中,用代码指定默认值,或者用null填充。
如果可以为空,那么sex=models.CharField(null=True)表示可以为空,那么添加这一列,就会用null全部填充。
还可以指定默认值例如为1
sex=models.CharField(null=True,default=1)