2024 iThome 鐵人賽2024 iThome 鐵人賽

這是 Django Ninja 系列教學的第 6 篇。

前一篇我們了解了整個專案所使用的 Python 開發工具。

本文將帶領你一步步完成,有關範例專案的環境設定:從安裝 Python、Poetry、clone 專案至本地、建立 Python 虛擬環境,到成功啟動 Django

即使你從未接觸過這些工具,按著本文的指南,應該也能順利完成環境設定並運行。

值得一提的是,我已經使用 Mac 很長一段時間,對 Windows 環境不甚熟悉,但我會盡可能提供相關的替代方案或指引。

好,我們開始吧!

快速導覽

👉 完整系列目錄點此查看
👉 程式碼範例GitHub 範例專案


一、安裝 Python 3.12

因為不是每個人的環境都方便安裝 pyenv(尤其它不支援 Windows), 這裡只講沒有 pyenv 的替代方案。

如果想透過 pyenv 安裝 Python, 可以參考上一篇提到的教學文章。

我們直接從 Python 官方網站下載並安裝 Python 3.12。

Windows 使用者

  1. 前往 Python 官方的下載頁面,下載 Python 3.12 的 Windows 安裝程式。
  2. 執行下載的安裝檔,記得勾選「Add Python 3.12 to PATH」選項。
  3. 完成安裝後,開啟命令提示字元並輸入python --version來確認是否安裝成功。

macOS 使用者

對於 macOS 使用者,我們有幾種安裝 Python 3.12 的方法:

  1. 使用 pyenv:這是我個人推薦的方式。
  2. 一樣使用官方安裝程式:前往 Python 官方網站下載 macOS 版本的安裝程式,並按照指示完成安裝。
  3. 使用 Homebrew:如果你已經安裝了 Homebrew,可以在終端中執行 brew install python@3.12 來安裝 Python 3.12。

安裝完成後,在命令列中輸入 python3 --version 來確認安裝是否成功。

不管用哪一種方式安裝,請務必透過上述指令確認 Python 版本正確。只要是 3.12.x 即可

1
2
❯ python3 --version
Python 3.12.5

二、安裝與設定 Poetry

專案中的所有 Python 套件都由 Poetry 管理,首先要安裝 Poetry。可以直接通過官方指令安裝:(以下指令適用 macOS 和 Linux 用戶

1
curl -sSL <https://install.python-poetry.org> | python3 -

安裝完成後,將 Poetry 執行檔路徑,新增到系統的 PATH 中:(Zsh 用戶

1
2
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Bash 用戶

1
2
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

檢查是否安裝成功:

1
2
❯ poetry --version
Poetry (version 1.4.0)

Windows 安裝與設定 Poetry

Windows 用戶可參考 JetBrains 的 Poetry 設定教學,我覺得寫得很清楚。

修改 Poetry config,改用.venv虛擬環境

預設為false,Poetry 會在獨立目錄下建立虛擬環境,而名稱很冗長!

改成true以後,則直接在專案根目錄下建立虛擬環境,且名稱固定為.venv

1
poetry config virtualenvs.in-project true

把虛擬環境放在專案中,這是我個人更偏好的做法。

不使用 Poetry 的方案

專案中準備了一份 requirements.txt 給習慣用 pip 的讀者。省去安裝與設定 Poetry 的麻煩。


三、從 GitHub 下載專案、建立虛擬環境

接下來是專案本身的設定。

一、Clone 專案

這是專案連結。使用git clone指令:

1
2
3
git clone https://github.com/kyomind/Django-Ninja-Tutorial.git
# 或
git clone git@github.com:kyomind/Django-Ninja-Tutorial.git

二、建立虛擬環境並安裝套件

進入專案目錄,使用 Poetry 建立虛擬環境:

1
poetry env use 3.12

此時在專案根目錄應該會建立一個.venv資料夾,即專案的虛擬環境,目前是空的

使用poetry shell啟動虛擬環境。

透過poetry install安裝套件:Poetry 會根據pyproject.tomlpoetry.lock內容,自動下載並安裝專案需要的所有套件。

pip 使用者

pip 用戶可以透過以下步驟建立虛擬環境:(全程在專案根目錄下進行)

  1. 使用 Python 內建的 venv 模組建立虛擬環境:python -m venv .venv
  2. 啟動虛擬環境:
    • Windows: .venv\Scripts\activate
    • macOS/Linux: source .venv/bin/activate
  3. 安裝套件:pip install -r requirements.txt

四、初始化 pre-commit

建立虛擬環境並使用poetry install後,pre-commit 套件已被安裝到虛擬環境中。

如你所見,專案中有一個.pre-commit-config.yaml檔。這個檔案定義了每次提交前要執行的檢查項目(Git Hooks)。

我們只需要透過下列指令,安裝 Git Hooks:

1
pre-commit install

這個指令會在專案的 Git 目錄中建立 Git Hooks,每個專案只要執行一次即可


五、安裝 VS Code 套件

如果你的 IDE 是 VS Code,我強烈建議安裝 RuffMypy 這兩個 VS Code 套件。讓你可以在第一時間知曉目前的程式碼狀態(是否有問題)。

兩者在安裝後,原則上都無須設定,因為專案內已經有了相關的設定檔

  1. Ruff:pyproject.toml
  2. Mypy:mypy.ini(在專案最新進度中已併入pyproject.toml

此外,它們都是 CLI 工具,所以你也可以手動執行它們,比如執行 Ruff 檢查:

1
2
ruff check
ruff format

或執行 Mypy 檢查:

1
mypy .

但還是 VS Code 套件最方便。


六、啟動 Django 專案

我們已經完成了所有必要的工具設定,接下來就可以啟動 Django 伺服器了。

一、進行資料庫遷移

這是一開始一定要的步驟:

1
python manage.py migrate

事實上,專案也準備了 Makefile,所以你也可以透過以下指令執行遷移:

1
make migrate

有關 Makefile 的介紹與教學,可以參考小克這篇〈寫 Web 也可以用 Makefile:好好管理你的環境流程〉。

二、啟動開發伺服器

執行以下命令來啟動 Django 開發伺服器

1
2
3
python manage.py runserver
# 或
make run

接著,打開瀏覽器並訪問 http://127.0.0.1:8000/,你應該可以看到 Django 預設的歡迎頁面,表示專案成功啟動!

Django 預設歡迎頁面Django 預設歡迎頁面


小結

通過上述步驟,你已經成功完成了專案的開發環境設定,並啟動了範例 Django 專案。

如果在設定過程中遇到問題,可查閱工具的官方文件或參考我的部落格教學,這些資源能幫助你解決常見問題,或進一步理解它們的功能。

專案分支與 PR

在專案的開發過程中,我們會使用 Git 分支和 GitHub 的 PR(Pull requests來管理不同章節的範例程式碼改動

這樣可以保持學習脈絡清晰有條理,避免因不同功能的程式碼混在一起而影響理解。

需要注意的是,不是每一篇文章都有自己的分支與 PR,因為有些篇章只涉及概念說明而沒有程式碼改動。


CodeGPT 推薦

此外,本專案幾乎所有的 commit 訊息,都是透過吳大開發的 CodeGPT 加上 GPT-4o mini API 自動生成

Commit message by CodeGPTCommit message by CodeGPT

畢竟,即使只是範例專案,要思考每一個 commit 訊息的內容也是不輕鬆。有了這樣的自動化工具,真的方便很多!而且風格一致性高,很適合偏執狂如我☺️

關於 CodeGPT,除了 GitHub 頁面介紹,還可以參考吳大的這篇〈生成式 AI CodeGPT 開發經驗談 - 台北 ModernWeb〉,內有投影片分享。

使用教學則可參考保哥的〈介紹好用工具:CodeGPT (使用 GPT 自動化產生 Git 的 Commit Log 訊息)〉。


現在,一切準備就緒,讓我們正式進入 Django Ninja 的世界。