建立 和 配置資料庫
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目錄中的中間檔案同步到資料庫中