使用 Django ORM 將資料寫入資料庫:新手入門指南

更新日期: 2024 年 11 月 23 日

Django 提供了一個強大的 ORM(Object-Relational Mapping) 工具。

幫助開發者通過操作 Python 對象來完成資料庫的增、刪、改、查操作,而無需手動書寫繁瑣的 SQL 語法。

本篇文章將介紹如何使用 Django ORM 將資料寫入資料庫,並通過操作物件完成數據查詢。


項目目錄結構示意圖

在進行資料庫操作之前,我們需要確保模型已經定義並同步到資料庫。以下是目錄結構示意圖:

mysite/
├── manage.py
├── mysite/
   ├── settings.py       # 專案配置文件
   ├── urls.py           # 主應用路由

├── resumes/
   ├── __init__.py
   ├── admin.py
   ├── apps.py
   ├── models.py         # 定義 Resume 模型
   ├── migrations/       # 遷移檔案存放目錄
      ├── __init__.py
      ├── 0001_initial.py
├── db.sqlite3            # 預設 SQLite 資料庫

啟用 Django Shell

在 Django 中,我們可以使用內建的 Shell 環境 來測試與操作資料庫。啟動 Shell 的指令如下:

python manage.py shell

啟動後,將進入一個 Python REPL 環境,允許我們即時操作 Django 應用的模型與資料庫。


引入模型

進入 Shell 後,我們需要引入要操作的模型。

例如,引入 resumes/models.py 中的 Resume 模型:

from resumes.models import Resume

新增資料到資料庫

透過操作 Resume 的物件屬性,我們可以輕鬆地將資料新增到資料庫,而無需手動書寫 SQL 語法。

新增資料的步驟

以下是一個完整的操作範例:

# 創建 Resume 物件
kitty = Resume()

# 設定屬性
kitty.title = ""          # 履歷標題
kitty.skill = "睡覺"        # 擁有的技能
kitty.content = "你好"      # 詳細內容

# 將物件存入資料庫
kitty.save()

解析操作過程

  1. 創建物件kitty = Resume()
    創建了一個 Resume 的實例,對應資料庫中的一筆記錄。
  2. 設置屬性kitty.title = "甲"
    對物件的屬性進行賦值,這些屬性對應於資料表中的欄位。
  3. 保存資料kitty.save()
    調用 .save() 方法,將物件的數據寫入資料庫。Django 的 ORM 會自動生成對應的 SQL 語法並執行。

查詢資料庫

Django ORM 支持多種查詢操作,可以輕鬆獲取資料庫中的數據。

查詢所有記錄

使用以下指令查詢 Resume 模型中的所有記錄:

Resume.objects.all()

輸出範例

<QuerySet [<Resume: Resume object (1)>]>

查詢特定記錄

如果需要查詢某筆特定的記錄,例如 ID 為 1 的記錄,可以使用:

Resume.objects.filter(id=1)

獲取單一記錄

若確認只有一筆記錄,可以使用 get() 方法:

Resume.objects.get(id=1)

Django ORM 的優勢

Django 的 ORM(Object-Relational Mapping)工具能讓開發者專注於數據邏輯,而非繁瑣的 SQL 語法:

  • 物件操作:將資料庫的記錄轉換為 Python 物件,直接操作屬性即可完成數據的增、刪、改、查。
  • 無需手寫 SQL:Django 會根據 ORM 操作自動生成對應的 SQL 語法,提升開發效率。
  • 數據與業務邏輯分離:數據結構由模型定義,便於維護與擴展。

小結

在本篇中,我們學習了如何使用 Django ORM 將資料寫入資料庫的基本流程:

  1. 啟動 Shell 環境:python manage.py shell
  2. 引入模型:from resumes.models import Resume
  3. 創建物件、設置屬性並保存:kitty.save()
  4. 查詢資料庫中的記錄:Resume.objects.all()Resume.objects.get(id=1)

Django 的 ORM 提供了一種直觀、高效的方式來操作資料庫,幫助開發者減少手動書寫 SQL 的工作量,專注於業務邏輯的實現。

透過不斷練習,您將能靈活地使用 Django ORM 實現更多複雜的數據操作!

Similar Posts