@git
models是django的很重要的部分,因此深刻研究。
本文章的所研究项目为黑马教育python课程中的项目实战-每天生鲜项目
这里就简单的描述下,会把研究的代码放在github,多研究几个来造成本身的知识体系github
文件夹中只有代码的models部分
该项目中一共有4个大类:cart(购物车),goods(商品),order(订单),user(用户)
而后里面有一个db文件夹,里面放的是base_model,全部的model的通用父类数据库
from django.db import models class BaseModel(models.Model): '''模型抽象基类''' create_time = models.DateTimeField(auto_now_add=True, verbose_name='建立时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') is_delete = models.BooleanField(default=False, verbose_name='删除标记') class Meta: # 说明是一个抽象模型类 abstract = True
做用:定义了三个字段,建立时间,更新时间,是否删除字段
而后经过元类的属性来讲明,这一个类是一个抽象类django
from django.db import models from django.contrib.auth.models import AbstractUser from db.base_model import BaseModel # Create your models here. class User(AbstractUser, BaseModel): '''用户模型类''' class Meta: db_table = 'df_user' verbose_name = '用户' verbose_name_plural = verbose_name ........
django中db很重要因此,db的包就在django下面,而后若是要建立一个模型,都要继承db.models下的model
第二个import是导入django.contrib.auth.models(django发行版本.认证.模型)
下的abstractuser(抽象用户),为何要导入这个呢,由于django作得太好了,把那种通用的表都抽象整合在一块儿了,要的时候直接用就完事
能够看到咱们定义的user表,继承了额abstractuser和basemodel(一个django自带的,一个本身定义的)
而后在user的内部类中定义db_table 也就是在数据库中建表的名称,至于verbose_name 好像就对admin后头中的显示有帮助,应该没有其余做用毕竟能够为中文,plural是复数的意思。网站
关于其余的都放在github上,每句都会有注释设计
gitee:https://gitee.com/bothsavage/DjangoModleStudy.git
github:https://github.com/BOTHSAVAGE/DjangoModleStudy.gitcode
我的博客网站
我的GitHub地址
我的公众号:
blog