@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