使用 Django ORM 將資料寫入資料庫:新手入門指南
更新日期: 2024 年 11 月 23 日
本文為 Django 進階教學,第 5 篇:
- 理解 Django 中的相對路徑與絕對路徑
- Django URL 路徑設置|name 參數與命名空間(Namespace)
- Django 串接資料庫與模型建構:完整入門指南
- Django 模型遷移與資料庫同步完整指南
- 使用 Django ORM 將資料寫入資料庫:新手入門指南 👈 所在位置
- Django 實現 CRUD 的 C(Create):新增資料功能完整指南
- Django CRUD 的 R(Read):資料讀取與顯示功能指南
- Django CRUD 的 U(Update):資料更新功能完整指南
- 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()
解析操作過程
- 創建物件:
kitty = Resume()
創建了一個Resume
的實例,對應資料庫中的一筆記錄。 - 設置屬性:
kitty.title = "甲"
對物件的屬性進行賦值,這些屬性對應於資料表中的欄位。 - 保存資料:
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 將資料寫入資料庫的基本流程:
- 啟動 Shell 環境:
python manage.py shell
- 引入模型:
from resumes.models import Resume
- 創建物件、設置屬性並保存:
kitty.save()
- 查詢資料庫中的記錄:
Resume.objects.all()
或Resume.objects.get(id=1)
Django 的 ORM 提供了一種直觀、高效的方式來操作資料庫,幫助開發者減少手動書寫 SQL 的工作量,專注於業務邏輯的實現。
透過不斷練習,您將能靈活地使用 Django ORM 實現更多複雜的數據操作!