Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

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

最後更新:2024年11月23日Python

本文為 Django 進階教學,第 5 篇:

  1. 理解 Django 中的相對路徑與絕對路徑
  2. Django URL 路徑設置|name 參數與命名空間(Namespace)
  3. Django 串接資料庫與模型建構:完整入門指南
  4. Django 模型遷移與資料庫同步完整指南
  5. 使用 Django ORM 將資料寫入資料庫:新手入門指南 👈 所在位置
  6. Django 實現 CRUD 的 C(Create):新增資料功能完整指南
  7. Django CRUD 的 R(Read):資料讀取與顯示功能指南
  8. Django CRUD 的 U(Update):資料更新功能完整指南
  9. Django CRUD 的 D(Delete):資料刪除功能完整指南

建議閱讀本文前,先閱讀完 Django 新手教學 系列文

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 實現更多複雜的數據操作!

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

Python

目錄

  • 項目目錄結構示意圖
  • 啟用 Django Shell
  • 引入模型
  • 新增資料到資料庫
  • 新增資料的步驟
  • 解析操作過程
  • 查詢資料庫
  • 查詢所有記錄
  • 查詢特定記錄
  • 獲取單一記錄
  • Django ORM 的優勢
  • 小結