模型類在MVT框架中負責M部分,所有跟數據庫產生交互的行爲都必須要經過模型類。所謂交互行爲呢,指的就是數據的增刪改查
一、創建模型類
模型類的創建需要在應用文件夾下的models.py模塊中創建對應的類,實際執行過程中,一個類就會對應一張數據庫中的表。創建的類需要繼承models.Modul類,這樣纔會由普通的類轉變爲一個模型類
下面我們舉個栗子,創建一個圖書類和一個英雄類
from django.db import models
class BookInfo(models.Model):
"""圖書模型類"""
# CharField字符串,參數max_length表示長度
btitle = models.CharField(max_length=20)
# DateField日期類型
bpub_date = models.DateField()
# 閱讀量 IntegerField數字
bread = models.IntegerField(default=0)
# 評論量
bcommon = models.IntegerField(default=0)
# 刪除標記
isDelete = models.BooleanField(default=False)
def __str__(self):
return self.btitle
class HeroInfo(models.Model):
"""英雄類"""
hname = models.CharField(max_length=50)
# BooleanField布爾值類型,default參數指定默認值
hgender = models.BooleanField(default=False)
# 備註
hcommon = models.CharField(max_length=128)
# 表之間的關係屬性:關聯主表BookInfo
# 關係屬性對應的表的字段名格式:關係屬性名_id
# 賦值的時候賦值關聯主表類的對象
hbook = models.ForeignKey('BookInfo')
def __str__(self):
return self.hname
二、生成遷移文件、執行遷移文件,生成表
模型類創建完成之後,就可以直接生成遷移文件,然後在執行遷移文件來生成對應的數據表
- 生成遷移文件:python manage.py makemigrations
- 執行遷移生成表:python manage.py migrate
注意:django項目默認使用的是sqlite3數據庫,如果需要使用MySQL數據庫的話,需要在settings.py文件中進行相關的配置,配置項如下
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql', # 數據庫類型
'NAME': 'test', # 數據庫名字
'USER': 'root', # 自己數據庫用戶名
'PASSWORD': '123456', # 自己的數據庫的密碼
'PORT': '3306', # mysql數據庫端口,一般爲3306,如果不是請修改
'HOST': 'localhost' # 數據庫所在的主機
}
}
下圖就是模型類生成的表的名形式 ,表名格式是:項目名.模型類名