您在 Django 開發時遇到過這個錯誤嗎?
You're accessing the development server over HTTPS, but it only supports HTTP.
如果您習慣透過 http://localhost:8000 存取開發伺服器,此錯誤可能會令人沮喪 - 特別是在更新強制 HTTPS 連線的防火牆規則之後。有一個更好的解決方案,而不是恢復安全設定:Ngrok。
Ngrok 是一個功能強大的工具,可以將本機應用程式公開到互聯網,而無需複雜的網路配置(例如連接埠轉送或 DNS 設定)。 在其官方文件中閱讀有關 ngrok 的更多資訊。
在我們開始之前,請確保您已經:
在我們安裝任何內容之前,請啟動您的虛擬環境,然後安裝 ngrok 的 Python 包裝器:
pip install pyngrok pip freeze > requirements.txt
將 ngrok 的網域加入專案的 settings.py 中允許的主機清單:
# settings.py ALLOWED_HOSTS = ['localhost', '127.0.0.1', '.ngrok-free.app']
這允許 Django 接受來自 ngrok 動態 URL (*.ngrok-free.app) 的請求。即使我們無法預測 URL 的隨機字串部分,Django 也不會產生任何錯誤。
在專案的根目錄中:
python manage.py runserver
注意:Windows 使用者可以使用 py manage.py runserver
ngrok config add-authtoken YOUR_TOKEN_HERE
啟動隧道:
ngrok http 8000
確保 ngrok 和 Django 伺服器連接埠相同。預設連接埠通常為 8000。
您應該會看到類似以下內容的輸出:
Account Your Name (Plan: Free) Version 3.19.0 Region United States (us) Latency Your Latency Web Interface An Unsecure HTTP address Forwarding https://[random-id].ngrok-free.app -> http://localhost:8000
僅使用控制台視窗上的 ngrok 提供的 HTTPS URL 存取您的 Django 應用程式。它看起來類似於以下:
https://[random-id].ngrok-free.app
Ngrok 不僅僅用於解決 HTTPS 問題。它的價值在於:
想了解更多關於 Web 開發的知識嗎?看看我的其他文章:
感謝您抽出時間並祝您編碼愉快!在評論部分分享您的項目。
以上是使用 Ngrok 將您的 Django 專案公開到 Internet的詳細內容。更多資訊請關注PHP中文網其他相關文章!