如何在 Heroku 上免費託管您的 Python 網站

如何在 Heroku 上免費託管您的 Python 網站

因此,您剛剛使用 Python 完成了一個簡單的投資組合網站,並且您想使用免費託管來建立它。您聽說過 Heroku 的免費託管,但您不太了解所涉及的技術細節。

本指南將幫助您以更簡單的方式完成在 Heroku 上免費託管 Python 網站的整個過程。我們假設您具有 Python 及其至少一種框架的基本知識——最好是 Django。

為什麼選擇 Heroku?

Heroku 是一個平台即服務 (PaaS) 網絡託管提供商,它在稱為 Dynos 的東西上運行其基礎架構。它讓您專注於部署,同時解決維護和構建 Web 基礎架構的困難。

如果您負擔不起付費託管但想快速建立在線投資組合,那麼您可能需要考慮將其託管在 Heroku 上。除了免費之外,在 Heroku 上建立您的網站也非常快。

當然,還有其他平台可以免費託管您的 Python 網站,例如 Amazon Web Services 和 PythonAnywhere。但是在 Heroku 上託管的過程很容易——尤其是對於沒有部署先驗知識的人。

當您在 Heroku 上免費託管網站時,您不一定需要擁有域名。您只需要在託管平台上指定您的應用程序名稱。Heroku 然後為您創建一個app.herokuapp.com定位器。當您使用這項免費服務時,您的站點將在 Heroku Dynos 上運行。

如果您後來決定擴大規模並獲得一個域名,這同樣簡單快捷,但您必須為此付費。維護升級的巨大成本可能會讓您重新考慮它,但如果您決心在該項目上投入更多資金,那麼這筆錢是值得的。

現在讓我們研究如何在 Heroku 上免費託管您的 Python 網站。請注意,這是基於 Python 3.7 版和 Django 2.1.7 版。

設置 Git 和 Heroku

首先,從git-scm 網站下載 Git 。那裡解釋了在所有操作系統上安裝 Git 的各種命令和技巧。

安裝 Git 後,如果您還沒有Heroku 註冊頁面,您還需要在Heroku 註冊頁面設置一個帳戶。

接下來,從 Heroku 網站下載並安裝Heroku CLI。Heroku CLI 可讓您在每次需要向應用程序提交更改時與存儲庫進行通信。

如果您還不熟悉 Git 命令,您應該看看我們對 Git 版本控制介紹

設置 Django 項目

如果您還沒有設置 Django 項目並想在本教程中嘗試一下,如果您還沒有,請打開命令行並創建一個虛擬環境。虛擬環境準備好後,使用此命令安裝 Django 框架:

pip install django==2.1.7

在虛擬環境中安裝好 Django 後,運行以下命令啟動一個新的 Django 項目:

django-admin.py startproject project_name

接下來,創建一個新的 Python 應用程序。為此,請遷移到 CMD 上項目的根文件夾並運行:

python manage.py startapp app_name

請記住將project_nameapp_name替換為您喜歡的名稱。

為此,您需要gunicorn模塊,因此您還應該運行pip install gunicorn。然後將gunicorn添加到settings.py中的已安裝應用列表中,如下圖:

如何在 Heroku 上免費託管您的 Python 網站

這只是構建 Django 應用程序的表面介紹。但是,無論您的應用程序已經準備好,還是您只是在構建一個,請確保您運行python manage.py migrate以創建您的數據庫。

您現在應該有一個在 Django 框架中運行的 Python 應用程序。現在我們將深入研究我們的主要目標。

將您的應用程序部署到 Heroku

要將您的應用程序成功部署到 Heroku,您需要設置一個requirements.txt文件。要設置它,請在您的 CMD 上運行以下命令:

pip freeze > requirements.txt

該行創建了一個.txt文件,其中包含用於為您的項目提供服務的所有包。Heroku 在部署期間查看該文件並自動安裝這些包。

您需要指定的另一個重要文件是Procfile。這告訴 Heroku 在應用程序初始化時運行的命令。但是,您必須通過在項目根目錄中顯式創建一個名為Procfile的新文本文件來創建此文件。確保此文件沒有文件擴展名;否則,它將無法工作。

要從 Windows 的 Procfile 中刪除文件擴展名,請在文件資源管理器中打開該文件夾,單擊頂部工具欄上的查看,然後選中文件擴展名框。然後您將看到所有文件的擴展名,包括Procfile.txt擴展名。右鍵單擊Procfile並選擇Rename,然後簡單地刪除.txt擴展名並按Enter

如何在 Heroku 上免費託管您的 Python 網站

接下來,打開 Procfile 並添加以下行,將project_name替換為適用於您的項目的名稱:

web: gunicorn project_name.wsgi

或者,您還可以創建一個runtime.txt文件。打開文件並指定 Python 版本如下:

python-3.7.6

這就是你告訴 Heroku 你的應用程序運行的 Python 版本的方式。如果不指定該文件,Heroku 將默認使用最新版本的 Python。

接下來,在命令提示符下,通過運行以下命令登錄您的 Heroku 帳戶:

heroku login

該命令將您的默認瀏覽器打開到 Heroku 登錄頁面,您可以在其中提供登錄憑據。

要在 Heroku 上創建應用程序,請鍵入以下行:

heroku create ademosapp2

ademosapp2替換為您首選的應用程序名稱。如果您選擇的應用名稱正在使用中,您會看到一條消息,提示您選擇一個新名稱。

在登錄頁面上,單擊 Heroku 徽標以登錄您的 Heroku 儀表板。您現在應該會看到您剛剛創建的應用程序。

如何在 Heroku 上免費託管您的 Python 網站

接下來,打開您首選的文本編輯器到您的項目位置並進入您的項目settings.py。在settings.py文件中,將Allowed Host更改為[*] ---這使您的應用程序可被任何全局主機訪問。

現在進入您的 Heroku 儀表板並單擊新創建的應用程序,然後單擊設置。在設置中,向下滾動並單擊Add buildpack。然後選擇 Python 作為您的 buildpack 並單擊Save changes

如何在 Heroku 上免費託管您的 Python 網站

接下來,回到您的 CMD 並運行以下代碼以在您的項目中安裝 Heroku:

pip install django-heroku

現在,通過運行將新安裝的包添加到requirements.txt文件中:

pip freeze > requirements.txt

然後,打開項目的settings.py文件並輸入:

import django_heroku

此外,在settings.py的最後一行,通過添加以下內容來激活django-heroku

django_heroku.settings(locals()) #ensure that you comment this line out after deployment

完成後,通過在命令行中鍵入以下內容來啟動遠程存儲庫:

heroku init

接下來,通過運行以下命令創建 Heroku 應用程序存儲庫:

heroku git:remote -a ademosapp2 #replace ademosapp2 with your app's name

要檢查需要提交的文件,請運行:

git status

接下來,鍵入以下命令將所有更改添加到您的存儲庫:

git add --all

添加更改後,通過運行以下命令將更改提交到 Heroku:

git commit -m "initial-commit"

請注意,“initial-commit”可以使用您喜歡的任何名稱。

接下來,您應該使用以下命令禁用collectstatic

heroku config:set DISABLE_COLLECTSTATIC=1

否則,您可能會在部署過程中遇到問題。

要將文件最終推送到 Heroku 存儲庫,請使用以下命令:

git push heroku master

這會將您的所有文件推送到 Heroku,並使應用程序可以從任何地方訪問。要查看新部署的應用程序,請在瀏覽器中訪問https://app_name.herokuapp.com,將app_name替換為您的應用程序名稱。

如何在 Heroku 上免費託管您的 Python 網站

Heroku 可以託管不在 Python 上運行的應用程序嗎?

您可以在 Heroku 上託管各種應用程序構建;我們在此介紹的相同 Git 進程也適用於 Python 之外的其他語言。您只需要進行少量更改,例如重置您的構建包。

儘管 Heroku 為您提供免費託管,但我們都知道免費內容有一些限制。但是,如果您不希望自己的網站獲得大量流量,免費的 Heroku 託管可能是一個不錯的選擇。


如何使用 Python 作為命令行計算器

如何使用 Python 作為命令行計算器

雖然您可以在計算機上使用圖形計算器,但 Python 編程語言解釋器可以兼作桌面計算器。它在 Python 社區中非常流行,以至於官方教程中都提到了它。下面介紹如何將 Python 用作計算器。

面向程序員的 8 個最佳 Java 博客

面向程序員的 8 個最佳 Java 博客

作為程序員,你應該接受挑戰才能生存,並在開發或編程領域創造一些奇蹟。因此,如果您正在尋求學習高級編程語言以提高您的職業技能,Java 是最好的前景之一。

初學者開始使用 Python 的 7 個重要命令

初學者開始使用 Python 的 7 個重要命令

如果您有一個全面的路線圖,詳細說明初學者應學習哪些概念以及如何進一步進步以達到下一個里程碑,那麼學習 Python 等新編程語言將變得輕而易舉。即使是中級程序員也應該經常複習他們的基礎知識,為自己打下堅實的基礎。

響應式網頁設計原則

響應式網頁設計原則

如今,構建一個根據瀏覽器或設備調整其用戶界面的網站或應用程序是一種常見的做法。有兩種方法可以實現這一目標。第一個涉及為不同的設備創建不同版本的網站或應用程序。但它效率低下,並可能導致不可預測的錯誤。

如何使用 C++、Python 和 JavaScript 計算數字中的位數

如何使用 C++、Python 和 JavaScript 計算數字中的位數

處理數字是編程的一個組成部分。每種編程語言都支持以多種不同方式操作數字。在本文中,您將學習如何使用迭代、基於日誌和基於字符串的方法查找整數中的總位數。

用於容器管理的 9 個最佳 Docker 替代方案

用於容器管理的 9 個最佳 Docker 替代方案

容器對於虛擬環境中的軟件開發、部署和管理非常有益。Docker 在容器化過程中很有用,但它不是唯一的平台。如果您正在尋找 Docker 的替代品,那就別無所求。此列表展示了一些功能豐富且高效的 Docker 替代方案,可用於您的下一個項目。

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

如何在您的 WordPress 帖子中嵌入推文

如何在您的 WordPress 帖子中嵌入推文

在您的 WordPress 帖子中嵌入第三方服務是一種吸引訪問者興趣的令人興奮的方式。嵌入的內容還提供了使掃描更容易的視覺提示。WordPress 使添加此類內容變得容易。

如何使用 npkill 刪除節點模塊文件夾

如何使用 npkill 刪除節點模塊文件夾

Node.js 是一個 JavaScript 運行時環境,允許您在 Web 瀏覽器之外運行 JavaScript,使其成為開發各種應用程序的流行選擇。它的流行部分是由於大量的 NPM 包可以簡化開發人員的體驗。

如何編寫和編譯你的第一個 Solidity 代碼

如何編寫和編譯你的第一個 Solidity 代碼

Solidity 是以太坊區塊鏈上智能合約使用的編程語言。它是一種靜態類型的、面向對象的編程語言。

前 5 大徽章將增強您的 GitHub 存儲庫

前 5 大徽章將增強您的 GitHub 存儲庫

GitHub 徽章可以通過為用戶提供一種快速的方法來捕獲存儲庫指標來提高存儲庫的可讀性。徽章可以嵌入到您的 README.md 中,以向其他開發人員闡明您的項目的重要性和必要性。因此,讀者可以通過檢查附加的徽章快速了解存儲庫。

什麼是國際程序員節?今年的 3 種慶祝方式

什麼是國際程序員節?今年的 3 種慶祝方式

國際慶祝日是對社會事務、歷史日子和各自職業給予認可的好方法。國際程序員日慶祝程序員在改善日常生活方面所發揮的作用。我們生活的文明世界是程序員辛勤工作的產物。

Python String format() 方法如何工作?10個例子

Python String format() 方法如何工作?10個例子

無論是數據庫查詢還是數學運算的結果,Python 字符串格式方法都提供了一種更加動態和吸引人的方式來向用戶呈現結果。

Visual Studio 2022 與 2019:您現在應該升級嗎?解釋

Visual Studio 2022 與 2019:您現在應該升級嗎?解釋

今年早些時候,微軟向狂野的編程世界發布了 Visual Studio 2022 的預覽版。這是個好消息!這是一個非常受歡迎的 IDE,但考慮到它蓬勃發展的 DevOps 生態系統的變化速度,它需要進行調整甚至大修。

軟件度量的簡單介紹

軟件度量的簡單介紹

軟件度量是用於量化軟件各個方面的度量。這些方面可以包括開發團隊的成本、質量和效率。

如何在 Windows 10 上安裝 .NET Framework 3.5 版

如何在 Windows 10 上安裝 .NET Framework 3.5 版

作為 Windows 用戶,您可能至少遇到過 .NET Framework 這個詞。它是 Microsoft 開發的軟件框架,可讓您構建和運行 C#、C++、F# 和 Visual Basic 程序。最新的 .NET 版本是 4.8,但您的計算機可能需要舊版本的 .NET(如 .NET 3.5)才能運行某些應用程序。

Flask 或 CherryPy:您應該使用哪種 Python 框架?

Flask 或 CherryPy:您應該使用哪種 Python 框架?

如果您是 Python 開發人員,您可以從一系列可用的框架中受益匪淺。雖然有些框架最適合大型生態系統,但其他框架則專門服務於特定的發展目標。繼續閱讀以了解兩個 Python 框架 Flask 和 CherryPy 之間的基本特性、用法和區別。

如何使用 Python、C++ 和 JavaScript 查找 N 位完美立方體和正方形

如何使用 Python、C++ 和 JavaScript 查找 N 位完美立方體和正方形

許多程序員喜歡使用代碼解決棘手的數學問題。它有助於提高頭腦和提高解決問題的能力。在本文中,您將學習如何使用 Python、C++ 和 JavaScript 找到最小和最大的 n 位完美正方形和立方體。每個示例還包含幾個不同值的示例輸出。

如何將 Python 添加到 Windows PATH 變量

如何將 Python 添加到 Windows PATH 變量

從終端運行 Python 通常是不可避免的。但是,如果您是第一次在 Windows 10 上安裝 Python,則只有將其添加到 Windows PATH 環境變量中,才能通過 Windows 終端運行它。

如何使用 Python if 語句

如何使用 Python if 語句

if 語句是邏輯編程的驅動力。因此,更好地掌握 Python 是對 Python 編程技能的重要補充。

如何使用 Python 作為命令行計算器

如何使用 Python 作為命令行計算器

雖然您可以在計算機上使用圖形計算器,但 Python 編程語言解釋器可以兼作桌面計算器。它在 Python 社區中非常流行,以至於官方教程中都提到了它。下面介紹如何將 Python 用作計算器。

面向程序員的 8 個最佳 Java 博客

面向程序員的 8 個最佳 Java 博客

作為程序員,你應該接受挑戰才能生存,並在開發或編程領域創造一些奇蹟。因此,如果您正在尋求學習高級編程語言以提高您的職業技能,Java 是最好的前景之一。

初學者開始使用 Python 的 7 個重要命令

初學者開始使用 Python 的 7 個重要命令

如果您有一個全面的路線圖,詳細說明初學者應學習哪些概念以及如何進一步進步以達到下一個里程碑,那麼學習 Python 等新編程語言將變得輕而易舉。即使是中級程序員也應該經常複習他們的基礎知識,為自己打下堅實的基礎。

響應式網頁設計原則

響應式網頁設計原則

如今,構建一個根據瀏覽器或設備調整其用戶界面的網站或應用程序是一種常見的做法。有兩種方法可以實現這一目標。第一個涉及為不同的設備創建不同版本的網站或應用程序。但它效率低下,並可能導致不可預測的錯誤。

如何使用 C++、Python 和 JavaScript 計算數字中的位數

如何使用 C++、Python 和 JavaScript 計算數字中的位數

處理數字是編程的一個組成部分。每種編程語言都支持以多種不同方式操作數字。在本文中,您將學習如何使用迭代、基於日誌和基於字符串的方法查找整數中的總位數。

用於容器管理的 9 個最佳 Docker 替代方案

用於容器管理的 9 個最佳 Docker 替代方案

容器對於虛擬環境中的軟件開發、部署和管理非常有益。Docker 在容器化過程中很有用,但它不是唯一的平台。如果您正在尋找 Docker 的替代品,那就別無所求。此列表展示了一些功能豐富且高效的 Docker 替代方案,可用於您的下一個項目。

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

SQL 與 NoSQL:下一個項目的最佳數據庫是什麼?

如何在您的 WordPress 帖子中嵌入推文

如何在您的 WordPress 帖子中嵌入推文

在您的 WordPress 帖子中嵌入第三方服務是一種吸引訪問者興趣的令人興奮的方式。嵌入的內容還提供了使掃描更容易的視覺提示。WordPress 使添加此類內容變得容易。

如何使用 npkill 刪除節點模塊文件夾

如何使用 npkill 刪除節點模塊文件夾

Node.js 是一個 JavaScript 運行時環境,允許您在 Web 瀏覽器之外運行 JavaScript,使其成為開發各種應用程序的流行選擇。它的流行部分是由於大量的 NPM 包可以簡化開發人員的體驗。

如何編寫和編譯你的第一個 Solidity 代碼

如何編寫和編譯你的第一個 Solidity 代碼

Solidity 是以太坊區塊鏈上智能合約使用的編程語言。它是一種靜態類型的、面向對象的編程語言。