Loading

ORM模型类

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) 

  

posted @ 2020-10-23 17:29  浅忆尘  阅读(117)  评论(0编辑  收藏  举报