今天要實際去為我們的Django Project
建立資料庫資料表。
這邊先複習一下,每個model
都是database
裡面的一張資料表。
此外,Django
預設採用的是SQLite Database
,所以可以在外層的myworld
資料夾下看到一個名為db.sqlite3
的檔案。
為了建立資料表,我們必須去修改members
下面的models.py
這個檔案。
查看models.py
會發現它基本上是空的 :
之前有稍微提到在Django
裡面,model
就是一個個的Python Class
。
下面新增一個名為Members
的Class
,它同時也是一個model
(資料表)。
from django.db import models
class Members(models.Model):
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
Members
繼承自models.Model
,也就是Members
是一個名為Members
的model
的意思 (有點冗長...)firstname
的字串欄位並限制字串最大長度為255lastname
的字串欄位並限制字串最大長度為255做完上面的操作,我們實際上還沒有真正在資料庫建立名為Members
的資料表。
要真正在資料庫建立這張資料表,我們需要繼續按步驟往下做 :
打開CMD
並切換到虛擬環境(python venv
)的資料夾路徑下
(實際venv
路徑不一定會跟我一樣喔!)
輸入以下指令啟動虛擬環境
Scripts\activate.bat
啟動虛擬環境後結果如下:
接著切換路徑到Django Project
所在的資料夾下
執行以下指令產生一個檔案紀錄對models
的變更
(產生的檔案會被放在migrations
資料夾下)
py manage.py makemigrations members
接著執行以下指令產生建立資料表的SQL
程式碼並執行
py manage.py migrate
做完以上5步就成功在資料庫建立Members
這張資料表囉!
而實際執行的SQL
程式碼如下 :
CREATE TABLE "members_members" (
"id" INT NOT NULL PRIMARY KEY AUTOINCREMENT,
"firstname" varchar(255) NOT NULL,
"lastname" varchar(255) NOT NULL);
明天會學到如何新增
Record
(資料表紀錄)到Members
資料表~