首頁 > 後端開發 > Python教學 > 部署 Django 應用程式共享託管。

部署 Django 應用程式共享託管。

WBOY
發布: 2024-08-25 06:02:09
原創
587 人瀏覽過

描述

這次,我將分享如何將 django 應用程式部署到共享主機。為了讓事情變得更容易,我使用 DirectAdmin 面板。如果你使用cpanel或其他面板,我認為不會有太大不同。確保您已經擁有網域並在任何地方購買共享託管服務,我不會限制您使用某些服務。

專案中使用的需求版本

  • python 版本 3.9.18
  • Django 版本 4.2

步驟

確保共享託管服務正常運作。

在進入部署方法之前,請確保共享託管服務正在正常運作。

Deploy Django App Shared Hosting.
這次在實踐中,我將使用網域名稱artinetix.cloud(調整為您的網域),以確保服務正常運行,如果我們造訪該網域URL,將會出現如下頁面。

Deploy Django App Shared Hosting.

建立子網域

建立一個子網域來區分一個應用程式 URL 和另一個應用程式 URL,一個網域可以用於多個子網域。例如,如果使用的網域是 artinetix.cloud,那麼將建立的子網域將類似於 django_tutor.artinetix.cloud。您可以在互聯網資源上閱讀有關子域的更多信息,以更好地了解子域。

  • 開啟儀表板頁面
  • 尋找子網域管理選單

Deploy Django App Shared Hosting.

  • 確保您已選擇將用作基礎域(紅色圓圈)並添加新的子域(藍色圓圈)

Deploy Django App Shared Hosting.

  • 只需使用預設的文檔根目錄,我將建立一個名為 django-tutor 的子網域

Deploy Django App Shared Hosting.

  • 點選新增子域名,如果子網域建立成功,將會出現在表格中。

Deploy Django App Shared Hosting.

  • 嘗試存取子網域位址,是否可以存取並顯示如下頁面?

Deploy Django App Shared Hosting.

別擔心,因為我們還沒有設定SSL,所以我們可以使用https協定訪問,而不僅僅是http。您可以點擊「前進」繼續造訪該位址,看看該網址是否有效。

Deploy Django App Shared Hosting.

上圖表示該 URL 現在可以存取。下一步是 SSL 設置,以便網路更安全,免受外部攻擊。

SSL 設定

  • 開啟 ssl 憑證頁面。

Deploy Django App Shared Hosting.

  • 開啟選單以產生新的 SSL。

Deploy Django App Shared Hosting.

  • 向下滾動,你會發現你的url位址(不帶www和帶wwww的)沒有被檢查。檢查將產生 SSL 的 URL 位址(紅色圓圈),並確保也選取強制 SSL 重定向(藍色圓圈),然後按一下「儲存」。

Deploy Django App Shared Hosting.

網頁頂部會出現一條載入動畫線,表示進程正在運行。如果流程成功,將出現如下通知。

Deploy Django App Shared Hosting.

藍色圓圈內有 ssl 產生的子網域(附 www 和不含 www)。

  • 刷新頁面後,恭喜!現在您的子網域可以更安全地存取。

Deploy Django App Shared Hosting.

準備 Django 應用程式

為了縮短文章,我不會專注於如何從頭開始設定 django 環境。準備一個已經開發完成並且可以在本地環境.

正常運行的django應用

在實務上,這次我會先使用預設的django(仍處於初始設定產生),使用django 4.2
Deploy Django App Shared Hosting.
執行django專案時,出現如上圖所示的頁面,則表示django運作正常。

  • 要使用的文件 並非所有檔案都必須儲存在伺服器上,請根據您的專案進行調整。這次,我只是使用了 github 上的 .gitignore python 模板。
文章中使用的項目的

文件樹(從某種意義上說,該文件將發送到伺服器,而不是已包含在.gitignore列表中的文件)如下。

.
|-- django-tutor
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   |-- wsgi.py
|-- manage.py
|-- requirements.txt
登入後複製

建立一個包含 django 專案 檔案的 zip 文件,然後將它們放置到伺服器上。

  • 管理面板上的文件 進入檔案總管選單

Deploy Django App Shared Hosting.

導覽至網域資料夾> (您的子網域的 URL)> public html,在public html資料夾中包含index.html檔案。該文件是我們建立子網域時顯示的文件。

Deploy Django App Shared Hosting.

刪除cgi-bin資料夾和index.html文件,上傳我們之前創建的zip項目,不要忘記解壓縮它。目前,部分中的步驟已經足夠了,讓我們繼續創建 django 環境。

  • 創建Python應用程式環境 在儀表板面板中,按一下 setup python app

Deploy Django App Shared Hosting.

選擇建立python應用程式並輸入如下配置,對於根應用程式可以調整,因為在放置檔案時我​​們已將python應用程式放置在public_html資料夾中,因此配置如下圖所示。如果合適,請點選建立在伺服器上建立環境。

Deploy Django App Shared Hosting.
成功設定python app並且造訪上面的URL後,只會顯示python it Works。發生這種情況是因為我們還沒有導入 django 專案並且環境沒有安裝 django。

  • 環境中安裝django 透過點擊命令文字來複製我用紅色圈起來的命令。

Deploy Django App Shared Hosting.

進入終端

Deploy Django App Shared Hosting.

在終端機中,右鍵點選並貼上上面的程式碼。

如果成功,請按照以下步驟操作。

  1. 輸入指令 pip list 查看已經安裝了哪些套件。
  2. 使用ls指令檢查我們是否位於正確的目錄,確保requirements.txt檔案存在。
  3. 使用requirements.txt檔案安裝所有套件,使用指令pip install -rrequirements.txt

環境上安裝django已完成,我們將進入檔案管理器編輯passenger_wsgi檔案。

  • 編輯 django Passenger_wsgi 文件 透過編輯passenger_wsgi檔案從django專案名稱資料夾(該資料夾包含settings.py檔案)匯入django應用程式,該檔案與requirements.txt位於同一目錄中,換句話說,我們的django應用程式的根目錄。

乘客.py

from django_tutor.wsgi import application
登入後複製

注意:django_tutor 調整為對應 django 應用程式的專案名稱

  • 編輯settings.py文件 生產時的settings檔案配置與開發階段時不同,編輯settings.py檔案(位於專案名稱資料夾中)如下。
  1. 將 DEBUG = True 改為 DEBUG = False
  2. 允許主機存取應用程序,根據使用的域名,ALLOWED_HOSTS = [] 變為 ALLOWED_HOSTS = ['django-tutor.artinetix.cloud', 'www.django-tutor.artinetix.cloud']。
  3. 在檔案結尾加入以下行程式碼來複製靜態檔案(css、js、圖片等) STATIC_ROOT = BASE_DIR / 'public'

前往儀表板面板 > 重新啟動 django 應用程式 >設定Python應用程式>點擊操作列中的重新啟動。

Deploy Django App Shared Hosting.

嘗試存取該 URL,頁面看起來是否或多或少像這樣?

Deploy Django App Shared Hosting.

嘗試透過在網域/admin 的 url 末尾添加 admin 來存取管理部分,然後或多或少會顯示如下頁面。

Deploy Django App Shared Hosting.

如果你有註意的話,這看起來就像一個笑話。這是因為CSS、JS等靜態檔案還沒有複製到Django專案中,可以注意以下步驟。

  1. 前往Python應用程式設定頁面。
  2. 點選所需操作Python應用程式上的編輯選單。
  3. 複製指令進入環境。 Deploy Django App Shared Hosting.
  4. 進入終端頁面並貼上命令。
  5. 成功進入環境後,執行python manage.pycollectstatic指令,將CSS、JS等靜態檔案移到settings.py中STATIC_ROOT路徑所在的資料夾。

成功執行上述步驟後,應用程式的根資料夾中應該會有一個包含 CSS 和 JS 檔案(Django 中使用的靜態檔案)的公用資料夾。請嘗試透過在 url 後面加上 admin (url/admin) 來存取 django 應用程式中的 admin url。如果顯示仍然如下所示,並且當我們檢查控制台時,會出現錯誤 MIME 類型無法執行。然後你需要將whitenoise套件添加到django應用程式中。您可以參考以下 URL Whitenoise 文件。每次在伺服器上更改程式碼時,不要忘記重新啟動:)。

Deploy Django App Shared Hosting.
MIME 類型錯誤。
Deploy Django App Shared Hosting.

這就是如何使用DirectAdmin在共享主機上部署django應用程序,實際上除了部署之外還有很多事情要做,即設置數據庫和添加環境變量。還要注意的是,這個方法是我平常會做的手動方法,看起來比較複雜。為了讓部署過程更容易,您通常可以透過 github actions 使用 ci & cd。我的就這麼多了,如果你有什麼想傳達的,無論是建議還是建設性的批評,請在評論欄中留言。非常感謝。

以上是部署 Django 應用程式共享託管。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板