Django 是什麼?框架介紹與安裝 | Django 教學

2026/05/24
Django 是什麼?框架介紹與安裝 | Django 教學

Django 是以 Python 撰寫的高階 Web 框架(Web Framework),自 2005 年發布以來,憑藉「電池全包」(Batteries Included)的設計哲學,成為 Python 生態系中最成熟、最受歡迎的 Web 開發框架之一。本文將帶你認識 Django 的歷史與核心理念,並從零開始完成安裝與第一個專案的建立。

Django 的誕生與歷史

Django 誕生於 2003 年,最初由 Adrian HolovatySimon Willison 在美國堪薩斯州的 Lawrence Journal-World 新聞網站開發團隊中建立。當時團隊需要快速開發和維護多個新聞網站,於是他們打造了一套可重複使用的 Web 框架來加速開發流程。

2005 年 7 月,Django 以開源(Open Source)方式正式對外發布,並以爵士吉他手 Django Reinhardt 的名字命名。2008 年,Django 軟體基金會(Django Software Foundation, DSF)成立,負責框架的長期維護與發展。

截至目前,Django 已發展到 5.x 版本,採用 BSD-3-Clause 開放原始碼授權,由全球活躍的開發者社群持續貢獻與維護。


「電池全包」哲學

Django 最核心的設計理念是 Batteries Included(電池全包),意思是框架本身就內建了 Web 開發所需的絕大多數功能,開發者不需要額外尋找和整合第三方套件。Django 內建的核心功能包括:

  • ORM(Object-Relational Mapper,物件關聯映射) – 以 Python 類別操作資料庫,支援 PostgreSQL、MySQL、SQLite、Oracle
  • Django Admin(管理後台) – 自動生成的後台管理介面,僅需少量設定
  • 認證系統(Authentication System) – 內建使用者註冊、登入、權限管理
  • 表單處理(Forms) – 表單宣告、驗證、HTML 渲染一體化
  • 模板引擎(Template Engine) – Django Template Language(DTL)渲染引擎
  • URL 路由(URL Routing) – 以函式或 path converter 定義網址對應
  • 中介層(Middleware) – 請求與回應的全域處理機制
  • 快取框架(Caching Framework) – 支援 Memcached、Redis 等多種快取後端
  • 國際化與在地化(i18n / L10n) – 多語言網站支援

此外,Django 還內建了完整的安全防護機制,包括 CSRF(跨站請求偽造)防護、XSS(跨站腳本攻擊)防護、SQL Injection(SQL 注入)防護等,讓開發者從專案建立的第一天起就擁有堅實的安全基礎。


Django 的架構模式:MVT

Django 採用 MVT(Model-View-Template) 架構模式,這是從經典的 MVC(Model-View-Controller)模式演變而來。三者的對應關係如下:

Django MVT傳統 MVC職責說明
ModelModel定義資料結構,負責與資料庫互動
ViewController處理業務邏輯,協調 Model 與 Template
TemplateView負責 HTML 頁面的呈現與渲染

Django 刻意將「Controller」的邏輯放入 View 層,並將畫面呈現交給 Template 層,讓命名更貼近 Web 開發的直覺。


Django vs Flask vs FastAPI 比較

Python 生態系中有三個主流的 Web 框架(Web Framework),各有不同的定位與適用場景:

比較項目DjangoFlaskFastAPI
類型全功能框架(Full-stack)微框架(Micro)現代非同步框架
設計哲學電池全包(Batteries Included)簡單核心,自由擴充高效能,型別提示優先
ORM內建 Django ORM無(常搭配 SQLAlchemy)無(常搭配 SQLAlchemy)
Admin 後台內建
非同步支援Django 3.0+ 支援 ASGI有限原生支援(async/await)
API 文件需搭配 DRF + drf-spectacular需搭配 Flask-RESTful 等自動生成 OpenAPI 文件
學習曲線中等(功能多,概念完整)低(核心簡單)中等(需熟悉型別提示)
適合場景中大型 Web 應用、CMS、電商小型 API、微服務、原型高效能 API、微服務

如何選擇? 如果你的專案需要完整的使用者管理、後台介面、表單處理等功能,Django 是最佳選擇。如果你只需要一個輕量的 API 服務,Flask 或 FastAPI 會更合適。


Django 的知名使用者

許多全球知名的大型平台都選擇 Django 作為其後端技術棧,這充分證明了 Django 在效能、穩定性與可擴展性方面的實力:

  • Instagram – 全球最大的圖片社群平台之一,是使用 Django 最具代表性的案例
  • Pinterest – 知名的圖片收藏與靈感發現平台
  • Disqus – 全球最大的第三方留言系統,每月處理數十億次請求
  • Spotify – 部分後端服務使用 Django 建構
  • Dropbox – 雲端儲存服務的部分後端系統

這些平台的規模說明了一件事:Django 不只適合初學者練習,更能勝任企業級的大規模應用。


安裝 Django:從零開始

接下來,我們將一步步完成 Django 的安裝。在開始之前,請確認你的電腦已安裝 Python 3.10 以上版本。

步驟一:確認 Python 版本

打開終端機(Terminal),輸入以下指令確認 Python 版本:

# 確認 Python 版本
python3 --version
# 輸出範例:Python 3.12.4

如果尚未安裝 Python,請前往 python.org 下載並安裝最新版本。

步驟二:建立虛擬環境

虛擬環境(Virtual Environment)是 Python 開發的最佳實踐。它能為每個專案建立獨立的套件空間,避免不同專案之間的套件版本衝突。

# 建立專案目錄
mkdir my_django_project
cd my_django_project

# 建立虛擬環境(命名為 venv)
python3 -m venv venv

建立完成後,啟用虛擬環境:

# macOS / Linux 啟用虛擬環境
source venv/bin/activate

# Windows 啟用虛擬環境
venv\Scripts\activate

啟用成功後,你會在終端機的提示符前方看到 (venv) 標記,表示目前正在虛擬環境中:

# 啟用後的提示符會變成這樣
(venv) $

步驟三:安裝 Django

在虛擬環境中,使用 pip 安裝 Django:

# 安裝最新版本的 Django
pip install django

# 輸出範例:
# Collecting django
#   Downloading Django-5.2-py3-none-any.whl (8.3 MB)
# ...
# Successfully installed asgiref-3.8.1 django-5.2 sqlparse-0.5.3

安裝完成後,確認 Django 版本:

# 確認 Django 版本
python3 -m django --version
# 輸出範例:5.2

你也可以在 Python 互動式環境中確認:

# 在 Python shell 中確認
import django
print(django.get_version())
# 輸出:5.2

建立第一個 Django 專案

Django 安裝完成後,我們就可以建立第一個專案了。Django 提供了 django-admin 命令列工具來快速生成專案結構。

步驟一:使用 startproject 建立專案

# 建立名為 myproject 的 Django 專案
django-admin startproject myproject .

注意指令最後的 .(點號),它表示在當前目錄建立專案,而不是額外建立一層同名資料夾。執行後的目錄結構如下:

my_django_project/          # 你的專案根目錄
├── manage.py               # Django 管理指令入口
├── myproject/              # 專案配置套件
│   ├── __init__.py         # 標記為 Python 套件
│   ├── settings.py         # 專案設定檔
│   ├── urls.py             # URL 路由配置
│   ├── asgi.py             # ASGI 入口(非同步伺服器)
│   └── wsgi.py             # WSGI 入口(同步伺服器)
└── venv/                   # 虛擬環境(不需提交至版本控制)

各檔案的用途說明:

  • manage.py – 專案的管理工具入口,用來執行各種 Django 管理指令(如啟動伺服器、執行資料庫遷移等)
  • settings.py – 專案的核心設定檔,包含資料庫配置、已安裝的 App、中介層等設定
  • urls.py – 定義 URL 路由規則,將網址對應到對應的 View 函式
  • wsgi.py – Web Server Gateway Interface 入口,用於部署到正式環境的同步伺服器(如 Gunicorn)
  • asgi.py – Asynchronous Server Gateway Interface 入口,用於部署到支援非同步的伺服器(如 Uvicorn)

步驟二:啟動開發伺服器

現在,讓我們啟動 Django 內建的開發伺服器(Development Server)來確認一切運作正常:

# 啟動開發伺服器
python3 manage.py runserver

# 輸出如下:
# Watching for file changes with StatReloader
# Performing system checks...
#
# System check identified no issues (0 silenced).
#
# You have 18 unapplied migration(s). Your project may not work properly until
# you apply the migrations for app(s): admin, auth, contenttypes, sessions.
# Run 'python manage.py migrate' to apply them.
# May 24, 2026 - 00:00:00
# Django version 5.2, using settings 'myproject.settings'
# Starting development server at http://127.0.0.1:8000/
# Quit the server with CONTROL-C.

你會看到一段關於「unapplied migration(s)」的提示訊息,這是正常的,我們會在後續教學中處理。目前只要確認伺服器成功啟動即可。

步驟三:確認安裝成功

打開瀏覽器,前往 http://127.0.0.1:8000/,你應該會看到 Django 的歡迎頁面,上面顯示一隻火箭圖案和「The install worked successfully! Congratulations!」的訊息。

看到這個畫面,代表你的 Django 開發環境已經設定完成。

如果你想要指定不同的埠號(Port),可以在指令後方加上埠號:

# 使用 9000 埠啟動開發伺服器
python3 manage.py runserver 9000

# 這時請前往 http://127.0.0.1:9000/ 查看

按下 Ctrl + C 即可停止開發伺服器。


manage.py 常用指令一覽

manage.py 是 Django 專案的指令中心,以下是你在開發過程中最常使用的指令:

指令用途
runserver [port]啟動開發伺服器(預設 8000 埠)
startapp <app_name>建立新的 Django App
makemigrations掃描 Model 變更並產生資料庫遷移檔
migrate執行未套用的資料庫遷移
createsuperuser建立管理員帳號
shell開啟載入 Django 環境的 Python 互動式 shell
collectstatic收集所有靜態檔案至指定目錄
test執行測試套件

這些指令我們會在後續的教學文章中逐一深入介紹。


總結

本文帶你認識了 Django 這個強大的 Python Web 框架:從 2005 年誕生的歷史背景,到「電池全包」(Batteries Included)的設計哲學,再到與 Flask、FastAPI 等框架的定位差異。我們也實際動手完成了 Django 的安裝流程——建立虛擬環境、安裝 Django、建立第一個專案、啟動開發伺服器,並成功看到 Django 的歡迎頁面。

Django 的 MVT 架構、內建的安全防護、以及豐富的功能模組,讓它成為從個人專案到 Instagram 等大型平台都能信賴的技術選擇。在接下來的教學中,我們將深入探索 Django App 的建立、Model 的定義,以及資料庫遷移等核心概念,一步步帶你掌握 Django 開發的完整技能。

BenZ Software Developer

熱愛技術的軟體開發者,在這裡分享程式開發經驗與學習筆記。