創建模型類流程
- 創建應用
- 在應用下的modules.py中編寫模型類
from django.db import models
class 模型類名(models.Model):
字段名 = models.字段類型(字段選項)
- 遷移同步 makemigrateions & migrate
模型類-字段類型
-
BooleanField()
- 數據庫類型:tinyint(1)
- 編程語言中:使用True或Flase來表示值
- 在數據庫中:使用1或0來表示具體的值
-
CharField()
- 數據庫類型:varchar
- 注意:必須要指定max_length參數值
-
DateField()
- 數據庫類型:date
- 作用:表示日期
- 參數:
- auto_now:每次保存對象時,自動設置該字段爲當前時間(取值:True/Flase)
- auto_now_add:當對象第一次被創建時自動設置當前時間(取值:True/Flase)
- default:設置當前時間(取值:字符串格式時間如:'2019-6-1')
注意:以上三個參數只能多選一
-
DateTimeField()
- 數據庫類型:datetime(6)
- 作用:表示日期和時間
- 參數同DateField
-
FloatField()
- 數據庫類型:double
- 編程語言中和數據庫中都使用小數表示值
-
DecimalField()
- 數據庫類型:decimal(x,y)
- 編程語言中:使用小數表示該列的值
- 在數據庫中:使用小數
- 參數:
- max_digits:位數總數,包括小數點後的位數。該值必須大於等於decimal_places
- decimal_places:小數點後的數字數量
-
EmailField()
- 數據庫類型:varchar
- 編程語言和數據庫中使用字符串
-
IntegerField()
- 數據庫類型:int
- 編程語言和數據庫中使用整數
-
ImageField()
- 數據庫類型:varchar(100)
- 作用:在數據庫中爲了保存圖片的路徑
- 編程語言和數據庫中使用字符串
-
TextField()
- 數據庫類型:longtext
- 作用:表示不定長的字符串數據
模型類-字段選項
- 字段選項,指定創建的列的額外的信息
- 允許出現多個字段選項,多個選項之間使用,隔開
-
primary_key
- 如果設置爲True,表示該列爲主鍵,如果指定一個字段爲主鍵,則此數據庫不會創建id字段
-
blank
- 設置爲True時,字段可以爲空,設置爲False時,字段是必須填寫的
-
null
- 如果設置爲True,表示該列值允許爲空
- 默認爲False,如果此選項爲False,建議加入default選項來設置默認值
-
default
- 設置所在列的默認值,如果字段選項null=False,建議添加此項
-
db_index
- 如果設置爲True,表示爲該列增加索引
-
unique
- 如果設置爲True,表示該字段在數據庫中的值必須是唯一(不能重複出現的)
-
db_column
- 指定列的名稱,如果不指定的話則採用屬性名作爲列名
-
verbose_name
- 設置此字段在admin界面上的顯示名稱
模型類-Meta類
使用內部Meta類來給模型賦予屬性,Meta類下有很多內建的類屬性,可對模型類做一些控制
class Book(models.Model):
title = models.CharField("書名",max_length=50,default='')
price = models.DecimalField('價格',max_digits=7,decimal_places=2,default=0.0)
info = models.CharField('描述', max_length=100,default='')
class Meta:
db_table = 'book' #可改變當前模型類對應的表名