【Day 08】 初探 Django Models

今天要實際去為我們的Django Project建立資料庫資料表。
這邊先複習一下,每個model都是database裡面的一張資料表。
此外,Django預設採用的是SQLite Database,所以可以在外層的myworld資料夾下看到一個名為db.sqlite3的檔案。

建立資料表

為了建立資料表,我們必須去修改members下面的models.py這個檔案。
查看models.py會發現它基本上是空的 :

之前有稍微提到在Django裡面,model就是一個個的Python Class
下面新增一個名為MembersClass,它同時也是一個model(資料表)。

1
2
3
4
5
from django.db import models

class Members(models.Model):
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
  • class Members(models.Model)
    • 表示Members繼承自models.Model,也就是Members是一個名為Membersmodel的意思 (有點冗長…)
  • firstname = models.CharField(max_length=255)
    • 為資料表建立名為firstname的字串欄位並限制字串最大長度為255
  • lastname = models.CharField(max_length=255)
    • 為資料表建立名為lastname的字串欄位並限制字串最大長度為255

做完上面的操作,我們實際上還沒有真正在資料庫建立名為Members的資料表。

實際建立資料表

要真正在資料庫建立這張資料表,我們需要繼續按步驟往下做 :

  1. 打開CMD並切換到虛擬環境(python venv)的資料夾路徑下

    (實際venv路徑不一定會跟我一樣喔!)

  2. 輸入以下指令啟動虛擬環境

    1
    Scripts\activate.bat

    啟動虛擬環境後結果如下:

  3. 接著切換路徑到Django Project所在的資料夾下

  4. 執行以下指令產生一個檔案紀錄對models的變更
    (產生的檔案會被放在migrations資料夾下)

    py manage.py makemigrations members

  5. 接著執行以下指令產生建立資料表的SQL程式碼並執行

    py manage.py migrate

做完以上5步就成功在資料庫建立Members這張資料表囉!

而實際執行的SQL程式碼如下 :

1
2
3
4
CREATE TABLE "members_members" (
"id" INT NOT NULL PRIMARY KEY AUTOINCREMENT,
"firstname" varchar(255) NOT NULL,
"lastname" varchar(255) NOT NULL);

明天會學到如何新增Record(資料表紀錄)到 Members 資料表~

分享到