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

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
Python中有可能理解嗎?如果是,為什麼以及如果不是為什麼?Python中有可能理解嗎?如果是,為什麼以及如果不是為什麼?Apr 28, 2025 pm 04:34 PM

文章討論了由於語法歧義而導致的Python中元組理解的不可能。建議使用tuple()與發電機表達式使用tuple()有效地創建元組。 (159個字符)

Python中的模塊和包裝是什麼?Python中的模塊和包裝是什麼?Apr 28, 2025 pm 04:33 PM

本文解釋了Python中的模塊和包裝,它們的差異和用法。模塊是單個文件,而軟件包是帶有__init__.py文件的目錄,在層次上組織相關模塊。

Python中的Docstring是什麼?Python中的Docstring是什麼?Apr 28, 2025 pm 04:30 PM

文章討論了Python中的Docstrings,其用法和收益。主要問題:Docstrings對於代碼文檔和可訪問性的重要性。

什麼是lambda功能?什麼是lambda功能?Apr 28, 2025 pm 04:28 PM

文章討論了Lambda功能,與常規功能的差異以及它們在編程方案中的效用。並非所有語言都支持他們。

什麼是休息時間,繼續並通過python?什麼是休息時間,繼續並通過python?Apr 28, 2025 pm 04:26 PM

文章討論了休息,繼續並傳遞Python,並解釋了它們在控制循環執行和程序流中的作用。

Python的通行證是什麼?Python的通行證是什麼?Apr 28, 2025 pm 04:25 PM

本文討論了Python中的“ Pass”語句,該語句是函數和類等代碼結構中用作佔位符的空操作,允許在沒有語法錯誤的情況下實現將來實現。

我們可以在Python中傳遞作為參數的函數嗎?我們可以在Python中傳遞作為參數的函數嗎?Apr 28, 2025 pm 04:23 PM

文章討論了將功能作為Python中的參數,突出了模塊化和用例(例如分類和裝飾器)等好處。

Python中的 /和//有什麼區別?Python中的 /和//有什麼區別?Apr 28, 2025 pm 04:21 PM

文章在Python中討論 /和//運營商: / for for True Division,//用於地板部門。主要問題是了解它們的差異和用例。 Character數量:158

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中