model.py是创建项目时生成的框架文件,默认导入了models的模块。具体解释和使用方法,如下
from django.db import models # Create your models here. class Nav(models.Model): #类名即表名 name=models.CharField(max_length=10,unique=True,verbose_name=‘导航名称‘) #创建一个字段,name.CharField指字符串类型,max_length,长度,必须要加,name指字段名,unique=True不能重复,null=True:表示可以为空,默认不能为空 is_delete=models.SmallIntegerField(default=1,verbose_name=‘是否被删除‘) #逻辑删除,SmallIntegerField短int型,int型不加max_length,例如展示性别是可以使用 # sex_coice=((0,‘男‘),(1,‘女‘)) # sex=models.SmallIntegerField(choices=sex_coice,verbose_name=‘性别‘) #枚举类型 create_time=models.DateTimeField(verbose_name=‘创建时间‘,auto_now_add=True) # auto_now_add,只要插入数据,就会自动设为当前时间,只要时间类型可以加这种参数 update_time = models.DateTimeField(verbose_name=‘修改时间‘, auto_now=True) # auto_now = True,修改数据时,时间会自动变 def __str__(self): #不加__str__查询结果是对象,加上之后返回结果是字符串,我们可以使用这些数据 return self.name class Meta: #名字固定 verbose_name=‘导航表‘ verbose_name_plural=verbose_name db_table=‘nav‘ #默认表名是appname+类名,db_table相当于重命名 ordering=[‘create_time‘] #查询数据时,默认按照哪个字段来排序,不排序的话可以注释掉 class Article(models.Model): title = models.CharField(max_length=20, verbose_name=‘文章名称‘) content = models.TextField( verbose_name=‘文章内容‘) #内容较长时用TextField,不需要加max_length img = models.ImageField( upload_to=‘article_img‘,verbose_name=‘文章图片‘,null=True) #图片类型 # ImageField使用前必须装pip install Pillow #upload_to=‘XXXX‘上传到指定路径下,必须存在 is_delete = models.SmallIntegerField(default=1, verbose_name=‘是否被删除‘) nav=models.ForeignKey(Nav,verbose_name=‘导航id‘,on_delete=models.DO_NOTHING,db_constraint=False) #db_constraint=False 不会真正建立外键,删除数据时没有实际关联 #外键,这个字段的值从另一个表取值,on_delete=models.DO_NOTHING 必须存在,指对应字段值被删,这个字段不受影响, create_time = models.DateTimeField(verbose_name=‘创建时间‘, auto_now_add=True) update_time = models.DateTimeField(verbose_name=‘修改时间‘, auto_now=True) def __str__(self): # 不写这个默认返回的是个对象 return self.title class Meta: db_table=‘article‘ #默认表名是appname+类名,db_table相当于重命名 ordering=[‘id‘] #默认按照某个字段排序,从小到大排序。“-id”:从大到小
当变更表结构时,需要执行命令才能生效
python manage.py makemigrations #产生迁移数据库的代码
python manage.py migrate #同步到数据库
原文:https://www.cnblogs.com/hancece/p/11721382.html