首頁 >後端開發 >Python教學 >使用 Ngrok 將您的 Django 專案公開到 Internet

使用 Ngrok 將您的 Django 專案公開到 Internet

Susan Sarandon
Susan Sarandon原創
2025-01-05 03:08:39747瀏覽

Exposing Your Django Project to the Internet Using Ngrok

您在 Django 開發時遇到過這個錯誤嗎?

You're accessing the development server over HTTPS, but it only supports HTTP.

如果您習慣透過 http://localhost:8000 存取開發伺服器,此錯誤可能會令人沮喪 - 特別是在更新強制 HTTPS 連線的防火牆規則之後。有一個更好的解決方案,而不是恢復安全設定:Ngrok。

什麼是恩格羅克?

Ngrok 是一個功能強大的工具,可以將本機應用程式公開到互聯網,而無需複雜的網路配置(例如連接埠轉送或 DNS 設定)。 在其官方文件中閱讀有關 ngrok 的更多資訊。

先決條件

在我們開始之前,請確保您已經:

  • Django 專案設定
  • 已安裝 Python 3.x
  • 已設定的虛擬環境
  • ngrok 帳戶(免費套餐即可)

逐步設定

1.安裝pyngrok包

在我們安裝任何內容之前,請啟動您的虛擬環境,然後安裝 ngrok 的 Python 包裝器:

pip install pyngrok
pip freeze > requirements.txt

2.配置Django設定

將 ngrok 的網域加入專案的 settings.py 中允許的主機清單:

# settings.py
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '.ngrok-free.app']

這允許 Django 接受來自 ngrok 動態 URL (*.ngrok-free.app) 的請求。即使我們無法預測 URL 的隨機字串部分,Django 也不會產生任何錯誤。

3.啟動你的Django伺服器

在專案的根目錄中:

python manage.py runserver

注意:Windows 使用者可以使用 py manage.py runserver

4. 驗證並啟動 Ngrok

  • 在 ngrok.com 註冊
  • 從儀表板複製您的驗證令牌
  • 在新的終端機視窗中,驗證 ngrok:
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

5. 測試您的設置

僅使用控制台視窗上的 ngrok 提供的 HTTPS URL 存取您的 Django 應用程式。它看起來類似於以下:

https://[random-id].ngrok-free.app

ngrok 的其他用例

Ngrok 不僅僅用於解決 HTTPS 問題。它的價值在於:

  • 快速網路曝光:即時分享您本地的開發工作
  • Webhook 測試:測試需要公共 URL 的整合
  • 客戶端預覽:讓客戶端無需部署即可預覽工作
  • 跨裝置測試:輕鬆在多個裝置上測試您的應用程式

故障排除技巧

  • 檢查您的 ngrok 驗證令牌是否配置正確
  • 啟動 ngrok 之前驗證您的 Django 伺服器是否正在執行
  • 監控 ngrok 介面的請求日誌與錯誤

相關資源

想了解更多關於 Web 開發的知識嗎?看看我的其他文章:

  • 了解服務品質 (QoS)
  • 製作響應式網站的藝術

感謝您抽出時間並祝您編碼愉快!在評論部分分享您的項目。

以上是使用 Ngrok 將您的 Django 專案公開到 Internet的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn