Django中資料庫的建立步驟(models模組的使用)
阿新 • • 發佈:2018-12-08
建立 和 配置資料庫
1).建立資料庫 - webdb create database webdb default charset utf8 collate utf8_general_ci; 2).Django的資料庫配置 在settings.py中配置資料庫的資訊 DATABASES = { 'default':{ 'ENGINE':django.db.backends.sqlites, 'NAME':os.path.join(BASE_DIR,DB.sqlite3), } } 1.ENGINE:指定要連線的資料庫的驅動程式 連線MYSQL的話可以取值為: 'django.db.backends.mysql' 2.NAME:指定要連線到的資料庫的名稱 連線mysql的話可以取值為: 資料庫名 3.USER:指定登入到資料庫管理系統的使用者名稱 連線到mysql的話,可以為:root 4.PASSWORD:指定登入到資料庫管理系統的密碼 5.HOST:指定要連線到的主機地址 如果是本機的話:127.0.0.1或localhost 6.PORT:指定埠號 mysql的預設為3306
示例:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'webdb',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': 3306,
}
}
3).編寫models 在建立的app下的models中編寫(不要忘記將app新增到seeting.py中的 INSTALLED_APPS 中) 1.Models的語法規範 class ClassName(models.Model): 屬性 = models.FIELDYPE(FIELD_OPTIONS) FIELDTYPE : 欄位型別 CharField() FIELD_OPTIONS:欄位選項(欄位說明) max_length=30 2. 常見的欄位名和欄位選項 欄位型別 FIELDTYPE 1.BooleanField() 程式語言中使用true 或 false 來表示該列的值 資料庫中使用1 或0 來表示具體的值 資料型別為:tinyint 2.CharField() 程式語言中使用字串來表示該列的值 資料庫中也是字串 資料型別為:varchar 注意:必須要指定max_length引數值 3.DateField() 程式語言中使用字串或者Date型別的資料表示該值 資料庫中使用的是時間字串 資料型別為;date 4.DateTimeField() 資料型別為:datetime 5.DecimalField() 程式語言中使用數字(小數)來表示該列的值 資料庫中使用小數表示 資料型別:decimal money = models.DecimalField(max_digits=7,decimal_places=2) 6.FloatField() 程式語言中使用數字(小數)來表示該列的值 資料庫使用小數 資料型別:float 7.IntegerField() 資料型別:int 8.EmailField() 程式語言中使用字串來表示一段email地址 資料庫中使用字串表示 資料型別:varchar 9.URLField() 程式語言中使用字串來表示一段網址 資料庫中使用字串表示 資料型別:varchar 10.ImageField() 目的:儲存圖片的路徑 資料型別:varchar image = models.ImageField(upload_to='images/') 欄位選項:FIELD_OPTIONS 1.default 作用:為當前欄位指定預設值 2.null 作用:指定當前欄位是否為空,預設值為False,不能為空 3.db_index 作用:指定是否為當前指定索引 4.db_column 作用:指定當前屬性對映到表中的類名,如果不指定則採用屬性名稱作為類名
示例:
# 建立一個實體類 - Publisher(出版社) # 1.name : 出版社名稱(varchar(30)) # 2.address: 出版社所在地址(varchar(200)) # 3.city:出版社所在的城市(varchar(50)) # 4.country:出版社所在的國家(varchar(50)) # 5.website:出版社的網址(varchar(200)) class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharField(max_length=200) city = models.CharField(max_length=50) country = models.CharField(max_length=50) website = models.URLField()
4) 將資料同步回資料庫
先後執行第1 步和第2 步
1. ./manage.py makemigrations
作用:將每個應用下的modeles.py檔案生成一個數據庫的中間檔案,並將中間檔案儲存
到migrations的目錄中
2. /manage.py migrate
作用:將每個應用下的migrations目錄中的中間檔案同步到資料庫中