使用 Ngrok 將您的 Django 專案公開到 Internet
您在 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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在開發效率上優於C ,但C 在執行性能上更高。 1.Python的簡潔語法和豐富庫提高開發效率。 2.C 的編譯型特性和硬件控制提升執行性能。選擇時需根據項目需求權衡開發速度與執行效率。

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

每天學習Python兩個小時是否足夠?這取決於你的目標和學習方法。 1)制定清晰的學習計劃,2)選擇合適的學習資源和方法,3)動手實踐和復習鞏固,可以在這段時間內逐步掌握Python的基本知識和高級功能。
