如何在Ubuntu 22.04上安裝Django並設置開發環境

介紹

Django是一個使用Python編寫的免費、開源的Web框架,其核心原則是可擴展性、可重用性和快速開發。它也以框架級別的一致性和鬆散耦合而聞名,允許各個組件獨立於彼此。

在本教程中,您將在Ubuntu 22.04服務器上建立一個用於開發目的的Django環境。對於一個實時網站,您將有額外的考慮,包括連接到數據庫、設置域名和添加安全層。有各種教程可以幫助您在Django標籤下進行構建。

先決條件

要完成本教程,您需要:

  • 一個具有sudo權限的非root用戶帳戶,您可以通過遵循並完成Ubuntu 22.04的初始服務器設置教程來實現。

  • 使用虛擬編程環境設置Python 3。 您可以通過Python 3安裝指南進行此設置。

步驟1 — 安裝Django

有幾種方法可以在虛擬環境內使用Python包管理器pip安裝Django。

在伺服器的主目錄中,您將創建一個包含Django應用程序的目錄。 執行以下命令以創建一個名為django-apps的目錄,或者您可以選擇其他名稱。 然後進入該目錄。

  1. mkdir django-apps
  2. cd django-apps

django-apps目錄內部,創建您的虛擬環境。 您將其稱為通用的env,但您應該使用對您和您的項目有意義的名稱。

  1. virtualenv env

現在,使用以下命令激活虛擬環境:

  1. . env/bin/activate

一旦前綴更改為(env),您將知道它已經啟動,具體取決於您所在的目錄:

在環境中,使用pip安裝Django套件。安裝Django允許我們創建和運行Django應用程序。

  1. pip install django

安裝完成後,通過運行版本檢查來驗證Django安裝:

  1. django-admin --version

這將是結果輸出的一部分:

Output
4.0.6

在您的服務器上安裝了Django後,您可以繼續創建一個測試項目,以確保一切都正常工作。您將創建一個骨架Web應用程序。

步驟2 — 調整防火牆設置

如果您遵循了初始服務器設置教程,或者在您的服務器上運行了防火牆,您將需要在服務器的防火牆中打開您將要使用的端口。對於UFW防火牆,您可以使用以下命令打開該端口:

  1. sudo ufw allow 8000

如果您使用的是DigitalOcean防火牆,您可以從入站規則中選擇HTTP。您可以通過修改入站規則來了解有關DigitalOcean防火牆以及如何為其創建規則的更多信息。

第 3 步 — 開始專案

現在您可以使用 django-admin,這是 Python 中用於管理任務的命令行工具,來生成應用程序。然後,您可以使用 startproject 命令來為您的測試網站創建專案目錄結構。

django-apps 目錄中執行以下命令:

  1. django-admin startproject testsite

注意:運行 django-admin startproject <projectname> 命令將命名專案目錄和專案包為 <projectname>,並在運行該命令的目錄中創建專案。如果提供了可選的 <destination> 參數,Django 將使用提供的目標目錄作為專案目錄,並在其中創建 manage.py 和專案包。

現在,您可以查看剛剛建立的專案文件。切換到 testsite 目錄,然後列出該目錄的內容以查看創建了哪些文件:

  1. cd testsite
  1. ls
Output
manage.py testsite

你会注意到输出显示该目录包含一个名为 manage.py 的文件和一个名为 testsite 的文件夹。 manage.py 文件类似于 django-admin,并将项目的包放在 sys.path 上。 这还将 DJANGO_SETTINGS_MODULE 环境变量设置为指向项目的 settings.py 文件。

您可以通过运行以下 less 命令在终端中查看 manage.py 脚本:

  1. less manage.py

阅读完脚本后,按 q 退出查看文件。

现在转到 testsite 目录以查看创建的其他文件:

  1. cd testsite/

然后运行以下命令列出目录的内容:

  1. ls

您将看到四个文件:

Output
__init__.py asgi.py settings.py urls.py wsgi.py

您可以了解每个文件的作用:

  • __init__.py 充当 Python 项目的入口点。
  • asgi.py 包含可选部署到异步服务器网关接口或 ASGI 的配置,它为同步和异步应用程序提供了标准,并被认为是 WSGI 的继任者(见下文)。
  • settings.py 描述了 Django 安装的配置,并让 Django 知道哪些设置是可用的。
  • urls.py 包含一个 urlpatterns 列表,将 URL 映射到其 views
  • wsgi.py 包含 Web 服务器网关接口或 WSGI 的配置,它提供了一个用于同步 Python 应用程序的标准。

注意:尽管生成了默认文件,但您仍然可以随时调整 asgi.pywsgi.py 文件,以符合您的部署需求。

步骤 4 — 配置 Django

现在,您可以通过运行 runserver 命令启动服务器并在指定的主机和端口上查看网站。

您需要将您的服务器 IP 地址添加到位于 ~/test_django_app/testsite/testsite/ 中的 settings.py 文件的 ALLOWED_HOSTS 列表中。

如 Django 文档中所述,ALLOWED_HOSTS 变量包含“表示此 Django 站点可以提供服务的主机/域名的字符串列表。这是一项安全措施,用于防止 HTTP 主机标头攻击,即使在许多看似安全的 Web 服务器配置下,这种攻击也是可能的。”

您可以使用您喜欢的文本编辑器添加您的 IP 地址。例如,如果您使用的是 nano,请运行以下命令:

  1. nano ~/django-apps/testsite/testsite/settings.py

一旦您執行了命令,您將希望導航至文件中的ALLOWED_HOSTS部分,並將您的伺服器IP地址添加到方括號內,單引號或雙引號之間。

settings.py
"""
Django settings for testsite project.

Generated by 'django-admin startproject' using Django 4.0.
...
"""
...
# 安全警告:在生產環境中不要開啟調試模式!
DEBUG = True

# 使用您的伺服器IP地址編輯下面的行
ALLOWED_HOSTS = ['your-server-ip']
...

您可以保存更改並退出nano,按住CTRL + x鍵,然後按y鍵。接下來,您將繼續通過瀏覽器訪問您的Web應用程式。

最後,創建一個管理用戶,以便您可以使用Django管理界面。可以使用createsuperuser命令完成此操作:

  1. python manage.py createsuperuser

您將被要求為您的用戶名、電子郵件地址和密碼進行輸入。

第5步 — 訪問Django Web應用程式

配置完成後,請務必返回到manage.py所在的目錄:

  1. cd ~/django-apps/testsite/

現在,運行以下命令,將your-server-ip文本替換為您的伺服器IP:

  1. python manage.py runserver your-server-ip:8000

最後,您可以導航到下面的鏈接,查看您的骨架網站的外觀,再次將突出顯示的文本替換為您服務器的實際IP:

http://your-server-ip:8000/

頁面加載完成後,您將看到以下內容:

這證實了Django已經正確安裝並且您的測試項目正常運行。

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

http://your_server_ip:8000/admin/

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

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

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

當您完成應用程序的測試時,您可以按下CTRL + C來停止runserver命令。這將返回您的編程環境。

當您準備離開Python環境時,您可以運行deactivate命令:

  1. deactivate

退出您的編程環境將使您回到終端命令提示符。

結論

在本教程中,您已成功安裝了Django並設置了開發環境,以開始開發您的Django應用程序。

你現在已經具備了開始建立 Django 網頁應用程式所需的基礎。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-django-and-set-up-a-development-environment-on-ubuntu-22-04