如何在Ubuntu 22.04上安装Django Web框架

介紹

Django是一個功能齊全的Python網頁框架,用於開發動態網站和應用程序。使用Django,您可以快速創建Python Web應用程序,並依賴該框架來處理大部分繁重的工作。

在本指南中,您將在Ubuntu 22.04服務器上啟動Django。安裝完成後,您將啟動一個新項目,用作站點的基礎。

不同的方法

有多種安裝Django的方法,具體取決於您的需求以及您想要配置開發環境的方式。這些方法各有優勢,其中一種方法可能比其他方法更適合您的具體情況。

一些不同的方法包括:

  • 從套件全局安裝:官方的Ubuntu存儲庫中包含Django套件,可以使用傳統的apt包管理器安裝。這很簡單,但不像一些其他方法那樣靈活。此外,存儲庫中包含的版本可能落後於項目提供的官方版本。
  • 在虛擬環境中使用 pip 安裝:您可以使用像是 venvvirtualenv 等工具為您的專案創建自包含的環境。虛擬環境允許您在專案目錄中安裝 Django,而不會影響到較大的系統,同時也可以包含其他專案定制和套件。這通常是使用 Django 的最實用和推薦的方法。
  • 使用 git 安裝開發版本:如果您希望安裝最新的開發版本而不是穩定版本,您可以從 Git 存儲庫獲取代碼。這是獲取最新功能/修復程式的必要步驟,可以在您的虛擬環境中完成。然而,開發版本不具有與更穩定版本相同的穩定性保證。

先決條件

在開始之前,您應該在您的 Ubuntu 22.04 伺服器上擁有一個具有 sudo 權限的非 root 用戶。要設置此設置,請參閱我們的 Ubuntu 22.04 初始伺服器設置指南

從套件進行全局安裝

如果您希望使用 Ubuntu 軟體庫安裝 Django,流程非常簡單。

首先,使用 apt 更新您的本地套件索引:

  1. sudo apt update

接下來,檢查您安裝的 Python 版本。Ubuntu 22.04 預設使用 Python 3.10,您可以輸入以下指令驗證:

  1. python3 -V

您應該會看到類似以下的輸出:

Output
Python 3.10.4

然後,安裝 Django:

  1. sudo apt install python3-django

您可以輸入以下指令測試安裝是否成功:

  1. django-admin --version
Output
3.2.12

這表示軟體已成功安裝。您也許會注意到 Django 的版本不是最新的穩定版本。要了解更多有關如何使用該軟體的資訊,請跳到如何建立範例專案

在虛擬環境中使用 pip 安裝

在系統上安裝 Django 的最靈活方式是在虛擬環境中進行。我們將向您展示如何在使用標準 Python 3 庫的 venv 模組創建的虛擬環境中安裝 Django。此工具允許您在不影響系統其他部分的情況下創建虛擬 Python 環境並安裝 Python 套件。因此,您可以根據每個專案選擇 Python 套件,而不受其他專案需求衝突的影響。

讓我們開始刷新本地套件索引:

  1. sudo apt update

檢查您已安裝的 Python 版本:

  1. python3 -V
Output
Python 3.10.4

接下來,讓我們從 Ubuntu 存儲庫安裝 pipvenv

  1. sudo apt install python3-pip python3-venv

現在,每次您開始一個新項目時,都可以為其創建虛擬環境。首先創建並移動到新的項目目錄:

  1. mkdir ~/newproject
  2. cd ~/newproject

接下來,使用與您的 Python 版本兼容的 python 命令在項目目錄中創建虛擬環境。我們將稱這個虛擬環境為 my_env,但您應該將其命名為一些描述性的:

  1. python3 -m venv my_env

這將在您的項目目錄中安裝獨立版本的 Python 和 pip,並將其放入隔離的目錄結構中。將創建一個以您選擇的名稱命名的目錄,該目錄將保存安裝您的套件的文件層次結構。

要將套件安裝到隔離的環境中,您必須通過輸入以下命令來激活它:

  1. source my_env/bin/activate

您的提示應該會變化,以反映您現在位於虛擬環境中。它看起來應該像 (my_env)username@hostname:~/newproject$

在您的新環境中,您可以使用 pip 安裝 Django。無論您的 Python 版本如何,在虛擬環境中,pip 都應該只是被稱為 pip。還請注意,由於您正在本地安裝,因此您無需 使用 sudo

  1. pip install django

您可以通過輸入以下命令來驗證安裝:

  1. django-admin --version
Output
4.0.4

請注意,您的版本可能與此處顯示的版本不同。

要離開您的虛擬環境,您需要在系統的任何位置發出 deactivate 命令:

  1. deactivate

您的提示應該恢復到常規顯示。當您想再次進行項目工作時,請返回到您的項目目錄並激活虛擬環境:

  1. cd ~/newproject
  2. source my_env/bin/activate

使用 Git 安裝開發版本

如果您需要開發版本的 Django,您可以從其 Git 存儲庫中下載並安裝 Django。讓我們在虛擬環境中執行此操作。

首先,讓我們更新本地軟件包索引:

  1. sudo apt update

檢查您安裝的 Python 版本:

  1. python3 -V
Output
Python 3.10.4

接下來,從官方存儲庫安裝 pipvenv

  1. sudo apt install python3-pip python3-venv

下一步是克隆 Django 存儲庫。在版本發布之間,該存儲庫將具有更新的功能和錯誤修正,但穩定性可能會受到影響。您可以將存儲庫克隆到名為 ~/django-dev 的目錄中,該目錄位於您的主目錄中,方法是輸入:

  1. git clone git://github.com/django/django ~/django-dev

切換到此目錄:

  1. cd ~/django-dev

使用與您已安裝的 Python 版本兼容的 python 命令創建虛擬環境:

  1. python3 -m venv my_env

激活它:

  1. source my_env/bin/activate

接下來,您可以使用pip安裝存儲庫。 -e選項將以“可編輯”模式安裝,從版本控制安裝時這是必要的:

  1. pip install -e ~/django-dev

您可以通過輸入以下命令來驗證安裝是否成功:

  1. django-admin --version
Output
4.0.4.2

再次注意,顯示的版本可能與此處顯示的不匹配。

您現在在您的虛擬環境中擁有最新版本的Django。

創建一個示例項目

安裝了Django後,您可以開始構建您的項目。我們將介紹如何使用虛擬環境在開發服務器上創建項目並對其進行測試。

首先,為您的項目創建一個目錄並切換到該目錄:

  1. mkdir ~/django-test
  2. cd ~/django-test

接下來,創建您的虛擬環境:

  1. python3 -m venv my_env

啟用該環境:

  1. source my_env/bin/activate

安裝Django:

  1. pip install django

要構建您的項目,您可以使用django-adminstartproject命令。我們將名稱項目為djangoproject,但您可以將其替換為其他名稱。startproject將在當前工作目錄中創建一個包含以下內容的目錄:

  • A management script, manage.py, which you can use to administer various Django-specific tasks.
  • A directory (with the same name as the project) that includes the actual project code.

為了避免太多嵌套的目錄,讓Django將管理腳本和內部目錄放置在當前目錄中(注意末尾的點):

  1. django-admin startproject djangoproject .

要遷移數據庫(此示例默認使用SQLite),讓我們使用manage.py命令與migrate遷移 將您對Django 模型 所做的任何更改應用到您的數據庫架構中。

要遷移數據庫,輸入:

  1. python manage.py migrate

您將看到如下輸出:

Output
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying sessions.0001_initial... OK

最後,讓我們創建一個管理用戶,這樣您就可以使用Djano管理界面。 讓我們使用createsuperuser命令來完成:

  1. python manage.py createsuperuser

您將被提示輸入用戶名、電子郵件地址和用戶的密碼。

修改Django設置中的ALLOWED_HOSTS

要成功測試您的應用程序,您需要修改Django設置中的其中一個指令。

輸入以下命令打開設置文件:

  1. nano ~/django-test/djangoproject/settings.py

在内部,定位 ALLOWED_HOSTS 指令。 这定义了可以用于连接到 Django 实例的地址或域名列表。 如果 Host 标头的传入请求不在此列表中,则会引发异常。 Django 要求您设置此项以防止某些类型的安全漏洞。

在方括号中,列出与您的 Django 服务器关联的 IP 地址或域名。 每个项目都应以引号括起来,并用逗号分隔的单独条目列出。 如果您想要一个整个域和任何子域的请求,请在条目开头加上一个句点:

~/django-test/djangoproject/settings.py
ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

完成后,请保存文件并退出编辑器。

测试开发服务器

一旦您有了用户,就可以启动 Django 开发服务器,查看全新的 Django 项目是什么样子。 您只应将其用于开发目的。 当您准备部署时,请务必仔细遵循 Django 的部署指南

在尝试开发服务器之前,请确保在防火墙中打开适当的端口。 如果您按照初始服务器设置指南并使用 UFW,则可以通过键入以下内容来打开 8000 端口:

  1. sudo ufw allow 8000

启动开发服务器:

  1. python manage.py runserver your_server_ip:8000

訪問您服務器的IP地址,後跟:8000在您的網頁瀏覽器中:

http://your_server_ip:8000

您應該會看到類似這樣的東西:

要訪問管理介面,請將/admin/添加到您URL的末尾:

http://your_server_ip:8000/admin/

這將帶您到一個登錄界面:

如果您輸入您剛創建的管理員用戶名和密碼,您將可以訪問網站的主管理部分:

有關使用Django管理介面的更多信息,請參閱“如何啟用並連接Django管理介面”。

當您完成查看默認站點時,您可以在終端中輸入CTRL-C來停止開發服務器。

您創建的Django項目提供了設計更完整站點的結構基礎。查看Django文檔以獲取有關如何構建應用程序和自定義站點的更多信息。

結論

您現在應該已在您的Ubuntu 22.04服務器上安裝了Django,提供您創建強大Web應用程序所需的主要工具。您還應該知道如何啟動新項目並啟動開發者服務器。利用像Django這樣的完整Web框架可以加快開發速度,讓您專注於應用程序的獨特方面。

如果您想獲得有關使用Django的更多信息,包括有關模型視圖等內容的深入討論,請參閱我們的Django開發系列

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-django-web-framework-on-ubuntu-22-04