Django 是一個高階 Web 框架,可以快速開發安全且易於維護的網站。它是一個免費且開源的框架,使用 Python 編寫。Django 也因其效能、安全性、可擴充性、可移植性和可維護性等額外特性而受到歡迎。
本指南將 示範如何安裝 Django 並設定一個簡單的 Web 應用程式於 Ubuntu 20.04.
在 Ubuntu 上的 Django
在系統上安裝 Django 有多種方法。每種方法都適用於不同的目標。
- 全域安裝:Django 可以直接從 Ubuntu 官方套件庫中取得。我們可以使用 APT 套件管理器直接安裝它。雖然這種安裝方法很簡單,但與其他方法相比,它的彈性較低。此外,它可能不包含該框架的最新版本。
- 使用
pip在虛擬環境中安裝:使用像是venv和virtualenv等工具,我們可以建立一個虛擬環境並在其中安裝 Django。這種方法的好處是它不會影響整個系統。它還允許針對每個專案進行自訂和套件管理。這是使用 Django 最實用且最推薦的方法。 - 安裝 Django 開發版本:Django 也可以在 GitHub 上取得。最新的開發版本將包含最新的功能/修復。然而,這可能會帶來潛在的效能和穩定性問題。
本指南假設您已正確配置 Ubuntu 伺服器。如果您還沒有 Ubuntu 伺服器,您可以按照我們的指南 如何設定您自己的 Ubuntu 伺服器.
在 Ubuntu 上安裝 Django
1. 使用套件管理器進行全域安裝
Django 可以直接從官方套件庫中取得。安裝過程非常簡單。首先,更新 APT 套件索引:
|
1 |
$ sudo apt update |
接下來,檢查安裝的 Python 版本。預設情況下,Ubuntu 20.04 隨附 Python 3.8:
|
1 |
$ python3 -V |
現在,我們準備好安裝 Django 了:
|
1 |
$ sudo apt install python3-django |
我們可以驗證安裝是否成功。執行以下命令來檢查 Django 版本:
|
1 |
$ django-admin --version |
這驗證了 Django 已成功安裝。請注意,此 Django 版本並非最新的穩定版本。在撰寫本文時,可用的最新 Django 版本為 v3.2.5 (LTS 版本).
2. 使用 pip 安裝 Django(在虛擬環境中)
這是推薦的 Django 安裝方式,因為它具有最大的彈性。我們將使用 venv 模組來產生虛擬環境,該模組是 Python 3 標準函式庫的一部分。它允許您建立 虛擬 Python 環境並安裝 Python 套件,而不會對系統的其他部分造成變更。您可以擁有多個具有獨特配置的虛擬環境。
讓我們開始吧。首先,我們需要 Python 的 pip 和 venv 模組:
|
1 2 |
$ sudo apt update $ sudo apt install python3-pip python3-venv |
模組已成功安裝。現在,我們將為虛擬環境建立一個專用目錄:
|
1 |
$ mkdir -pv ~/sample_project |
接下來,將目前工作目錄切換到新目錄:
|
1 |
$ cd ~/sample_project |
現在,我們可以告訴 venv 在該目錄中建立一個虛擬環境。至於環境名稱,它應該是具有描述性的名稱:
|
1 |
$ python3 -m venv sample_project_env |
The venv 模組將在專案目錄中的獨立目錄結構中建立 Python 和 pip 的複本。它將包含一個具有所選名稱的目錄,該目錄包含安裝所有套件的檔案階層。
要安裝其他套件,我們需要啟用該環境:
|
1 |
$ source sample_project_env/bin/activate |
Shell 提示字元應該會變成像這樣:
在虛擬環境中,我們現在可以安裝 Django:
|
1 |
$ pip install django |
驗證安裝是否成功:
|
1 |
$ django-admin --version |
若要離開虛擬環境,請執行以下命令:
|
1 |
$ deactivate |
3. 安裝 Django 開發版本
Django 開發版本可以直接在 GitHub 上取得。我們將使用 git 在虛擬環境中複製並部署它。
首先,確保我們已安裝必要的工具。以下命令將安裝 venv 和 pip(Python 模組)以及 git:
|
1 |
$ sudo apt update && sudo apt install python3-pip python3-venv git |
接下來,複製 Django 存放庫。它將包含所有最新功能和錯誤修正(代價是穩定性)。我們將其複製到目錄 ~/django-dev:
|
1 |
$ git clone git://github.com/django/django ~/django-dev |
將目前目錄切換至複製的存放庫:
|
1 |
$ cd ~/django-dev |
之後,使用 Python 的 venv 模組建立虛擬環境:
|
1 |
$ python3 -m venv sample_project_env |
然後,啟用虛擬環境:
|
1 |
$ source sample_project_env/bin/activate |
現在,我們可以安裝從 GitHub 複製的 Django。這裡的旗標 -e 指的是「可編輯」模式,以允許從版本控制進行安裝:
|
1 |
$ pip install -e ~/django-dev |
最後,驗證安裝:
|
1 |
$ django-admin --version |
Django 專案範例
到目前為止,我們已經示範了如何在系統上安裝 Django。現在,是時候讓 Django 投入實際運作了。在本節中,我們將示範如何建立一個 Django 專案範例。該專案範例將在虛擬環境中建立。
為專案範例建立一個目錄:
|
1 |
$ mkdir -pv ~/django-test |
將目前目錄切換至專案目錄:
|
1 |
$ cd ~/django-test |
然後,使用 venv 模組來建立 Python 虛擬環境:
|
1 |
$ python3 -m venv dummy_env |
虛擬環境已準備就緒。啟用該環境:
|
1 |
$ source dummy_env/bin/activate |
我們可以在環境中安裝 Django:
|
1 |
$ pip install django |
我們可以使用 django-admin 來建置專案基礎。在這裡,專案範例將命名為 sampleproject。該專案將在環境目錄中包含一個目錄,其中包含所有必要的檔案。
manage.py:一個管理指令碼,用於管理各種 Django 特定的任務。sample project:一個與專案同名的目錄,其中包含實際的專案程式碼。
然而,我們不希望有太多巢狀目錄。因此,請告訴 Django 將檔案和目錄放在目前目錄中:
|
1 |
$ django-admin startproject sampleproject . |
下一步是遷移資料庫。預設情況下,Django 使用 SQLite. 遷移 會將對 Django 模型所做的任何變更套用到資料庫結構描述。執行以下命令以遷移資料庫:
|
1 |
$ python manage.py migrate |
最後,我們將建立一個管理員使用者以使用 Django 管理介面。執行以下命令:
|
1 |
$ python manage.py createsuperuser |
它將要求輸入該使用者的使用者名稱、電子郵件地址和密碼。
Django 設定中的 ALLOWED_HOSTS
若要測試應用程式,我們需要修改 Django 設定中的某個指令。在文字編輯器中開啟 settings.py 檔案:
|
1 |
$ nano ~/django-test/sampleproject/settings.py |
我們感興趣的指令是 ALLOWED_HOSTS。它描述了可以連線到 Django 執行個體的位址或網域名稱清單。任何來自不在清單中的主機的連線請求都將引發例外狀況。這是 Django 為了防止某些類型的安全性漏洞所必需的。
在方括號內,列出與 Django 伺服器關聯的 IP 位址或網域名稱。每個項目都將列在引號中,並用逗號 (,) 分隔。該指令的結構如下所示:
|
1 |
$ ALLOWED_HOSTS = ['<server_ip_or_domain>', '<server2_ip_or_doman>'] |
儲存列表並關閉編輯器。
測試伺服器
我們現在可以啟動 Django 部署伺服器。它將呈現一個全新的 Django 專案。請注意,它僅能用於開發目的。如需完整的部署,請遵循 官方 Django 部署指南.
在存取開發伺服器之前,請確保防火牆允許存取連接埠 8000。如果您遵循 Ubuntu 伺服器設定 指南,請指示 UFW 開啟連接埠 8000 以進行通訊:
|
1 |
$ sudo ufw allow 8000 |
UFW 是所有主要 Linux 發行版上都可用的常見防火牆。這是一份指南 解釋 UFW 的各種基礎知識。開發伺服器現在已準備好運行。啟動伺服器:
|
1 |
$ python manage.py runserver <server_ip>:8000 |
接下來,在網頁瀏覽器中造訪伺服器在連接埠 8000 上的 IP 位址。它將進入 Django 歡迎頁面:
|
1 |
$ http://<server_ip>:8000 |
要存取 Django 管理面板,請在 URL 的末尾附加 /admin/:
|
1 |
$ http://<server_ip>:8000/admin/ |
輸入管理員使用者名稱和密碼以存取管理區域:
您可以透過在終端機中按下 CTRL-C 來停止伺服器。
結語
Django 專案為設計更完整的網站提供了結構基礎。它提供了驅動網頁應用程式所需的主要工具。利用像 Django 這樣的網頁框架可以讓您更快地開發專案,並將更多時間花在應用程式的獨特方面。
祝您使用愉快!












留言
目前尚無留言。成為第一個留言的人吧。