基于Flask與Ngrok實現Pycharm本地項目公網訪問:從零部署

目錄

概要

1. 環境與前置條件

2. 安裝與配置 Flask

2.1 創建虛擬環境

2.2 安裝 Flask

3. 安裝與配置 Ngrok

3.1 下載 Ngrok

3.2 注冊并獲取 Authtoken

4. 在 PyCharm 中創建 Flask 項目

5. 運行本地 Flask 服務

6. 啟動 Ngrok 隧道并獲取公網地址

7. 完整示例代碼匯總

8. 常見問題與排查

9. 結語


概要

本文提供一種通過Flask框架與Ngrok工具實現本地開發項目(基于PyCharm)公網訪問的輕量化方案。通過整合Python后端服務配置、Ngrok隧道映射及安全認證流程,開發者可快速生成臨時外網域名,實現遠程調試與接口測試。本方案適用于原型開發、跨設備協作及API接口驗證場景。


1. 環境與前置條件

  • 操作系統:Windows/macOS/Linux 均可。

  • Python 版本:≥3.6。3.11已測試有效。

  • PyCharm:已安裝并能正常運行。

  • 網絡:能訪問 ngrok.com 及 Python 包索引。


2. 安裝與配置 Flask

2.1 創建虛擬環境

python -m venv venv
source venv/bin/activate    # Linux/macOS
venv\Scripts\activate       # Windows

此步驟可隔離依賴,避免全局污染。

2.2 安裝 Flask

pip install Flask

根據 Flask 官方文檔,Flask 是輕量級微框架,可快速上手并支持生產部署ngrok


3. 安裝與配置 Ngrok

3.1 下載 Ngrok

從官方頁面下載對應平臺的可執行文件并解壓至任意目錄(如 /usr/local/bin)Download ngrok

3.2 注冊并獲取 Authtoken

  1. 訪問 https://ngrok.com 并注冊免費賬號。

  2. 登錄控制面板,復制 Authtoken。

  3. 在終端中執行:

ngrok config add-authtoken <YOUR_AUTHTOKEN>

此命令會將 Authtoken 寫入 ~/.ngrok2/ngrok.yml,用于后續隧道授權


4. 在 PyCharm 中創建 Flask 項目

  1. 新建項目:File → New Project → Pure Python,選擇上述虛擬環境。

  2. 添加依賴:在 PyCharm 的 Terminal 中執行 pip install Flask

  3. 項目結構

my_flask_app/
│
├── app.py
├── requirements.txt
└── venv/
  1. requirements.txt 內容:

Flask

5. 運行本地 Flask 服務

app.py 中編寫最簡示例:

from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return 'Hello, Flask + Ngrok!'if __name__ == '__main__':app.run(port=5000)
  • port=5000 為 Flask 默認端口,可自定義。
    ?

    在Ngork界面運行以下命令,將本地5000端口映射至公網:

    bash

    ngrok http 5000

    Ngrok將生成Forwarding字段(如https://abcd.ngrok.io),即外網訪問地址。

  • 通過 PyCharm Run 配置或在終端執行 python app.py 啟動服務


6. 啟動 Ngrok 隧道并獲取公網地址

在新終端(仍在虛擬環境或可執行 ngrok)中運行:

ngrok http 5000
  • 此命令將在控制臺輸出兩個公網地址(HTTP 和 HTTPS),形如 https://xxxxxx.ngrok.io

  • Ngrok 會將外部請求安全轉發至本地 5000 端口


7. 完整示例代碼匯總

from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return 'Hello, Flask + Ngrok!'if __name__ == '__main__':# 開發模式下可打開 debugapp.run(host='0.0.0.0', port=5000)
Flask>=2.0

8. 常見問題與排查

問題排查思路
Ngrok 報錯 ERR_NGROK_6022重置 Authtoken:ngrok config add-authtoken ...;檢查網絡連通性
訪問超時或 502確保 Flask 正在運行且端口一致;防火墻未阻擋;使用 app.run(host='0.0.0.0')
地址隨機變更免費版地址非固定,可升級付費或在腳本中調用 Ngrok API 申請穩定子域

9. 結語

通過上述步驟,可在本地 PyCharm 環境中快速搭建 Flask 服務,并借助 Ngrok 實現臨時公網訪問,適用于演示、測試及遠程調試場景。后續可集成 CI/CD、Docker 或自定義子域,進一步完善部署流程。
本思路實戰項目記錄:

搭建 Stable Diffusion 圖像生成系統并通過 Ngrok 暴露到公網(實現本地系統網絡訪問)——項目記錄 -CSDN博客

?擴散部署:
深度學習項目記錄·Stable Diffusion從零搭建、復現筆記-CSDN博客
Stable Diffusion+Pyqt5: 實現圖像生成與管理界面(帶保存 + 歷史記錄 + 刪除功能)——我的實驗記錄(結尾附系統效果圖)-CSDN博客

SD + Contronet,擴散模型V1.5+約束條件后續優化:保存Canny邊緣圖,便于視覺理解——stable diffusion項目學習筆記-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76916.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76916.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76916.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ragflow、Dify、FastGPT、COZE核心差異對比與Ragflow的深度文檔理解能力??和??全流程優化設計

一、Ragflow、Dify、FastGPT、COZE核心差異對比 以下從核心功能、目標用戶、技術特性等維度對比四款工具的核心差異&#xff1a; 核心功能定位 ? Ragflow&#xff1a;專注于深度文檔理解的RAG引擎&#xff0c;擅長處理復雜格式&#xff08;PDF、掃描件、表格等&#xff09;的…

LeetCode[232]用棧實現隊列

思路&#xff1a; 一道很簡單的題&#xff0c;就是棧是先進后出&#xff0c;隊列是先進先出&#xff0c;用兩個棧底相互對著&#xff0c;這樣一個隊列就產生了&#xff0c;右棧為空的情況&#xff0c;左棧棧底就是隊首元素&#xff0c;所以我們需要將左棧全部壓入右棧&#xff…

postman 刪除注銷賬號

一、刪除賬號 1.右上角找到 頭像&#xff0c;view profile https://123456-6586950.postman.co/settings/me/account 二、找回賬號 1.查看日志所在位置 三、postman更新后只剩下history 在 Postman 中&#xff0c;如果你發現更新后只剩下 History&#xff08;歷史記錄&…

微服務相比傳統服務的優勢

這是一道面試題&#xff0c;咱們先來分析這道題考察的是什么。 如果分析面試官主要考察以下幾個方面&#xff1a; 技術理解深度 你是否清楚微服務架構&#xff08;Microservices&#xff09;和傳統單體架構&#xff08;Monolithic&#xff09;的本質區別。能否從設計理念、技術…

【KWDB 創作者計劃】_深度學習篇---向量指令集

文章目錄 前言一、加速原理數據級并行(DLP)計算密度提升減少指令開銷內存帶寬優化隱藏內存延遲二、關鍵實現技術1. 手動向量化(Intrinsics)優勢挑戰2. 編譯器自動向量化限制3. BLAS/LAPACK庫優化4. 框架級優化三、典型應用場景矩陣運算卷積優化歸一化/激活函數嵌入層(Embe…

跳躍游戲(每日一題-中等)

題解&#xff1a;定義一個變量&#xff0c;用來存儲可以到達的最遠位置。初始化為0。 然后對數組進行遍歷&#xff0c;遍歷開始的時候&#xff0c;先判斷當前這個位置和最遠位置誰大&#xff0c;如果最遠位置比較大&#xff0c;那么就說明當前這個位置也能達到&#xff0c;就看…

第七篇:linux之基本權限、進程管理、系統服務

第七篇&#xff1a;linux之基本權限、進程管理、系統服務 文章目錄 第七篇&#xff1a;linux之基本權限、進程管理、系統服務一、基本權限1、什么是權限&#xff1f;2、為什么要有權限&#xff1f;3、權限與用戶之間的關系&#xff1f;4、權限對應的數字含義5、使用chmod設定權…

音視頻小白系統入門課-2

本系列筆記為博主學習李超老師課程的課堂筆記&#xff0c;僅供參閱 往期課程筆記傳送門&#xff1a; 音視頻小白系統入門筆記-0音視頻小白系統入門筆記-1 課程實踐代碼倉庫&#xff1a;傳送門 音視頻編解碼 可以通過ffmpeg -f avfoundation -list_devices true -i "&…

外賣“三國殺”開新局,餓了么已手握AI牌

【潮汐商業評論/原創】 01 新戰役&#xff0c;新變量 外賣行業&#xff0c;又迎來了新一輪戰役。 前有京東宣布斥資百億進軍外賣市場&#xff0c;后有美團宣布發布即時零售品牌“美團閃購”。雙方在隔空秀肌肉、彰顯自身實力的同時&#xff0c;行業巨頭圍繞本地生活服務的攻…

HAProxy 和 Keepalived 區別

HAProxy 和 Keepalived 是在構建高可用和可擴展Web服務時常用的兩個開源軟件&#xff0c;但它們的核心功能和目的有顯著區別。 簡單來說&#xff1a; HAProxy: 主要是一個 負載均衡器 (Load Balancer) 和 反向代理 (Reverse Proxy)。它負責將客戶端的請求智能地分發到后端的多…

YOLO算法的革命性升級:深度解析Repulsion損失函數在目標檢測中的創新應用

## 一、目標檢測的痛點與YOLO的局限性 在自動駕駛、智能監控等復雜場景中,目標檢測算法常面臨致命挑戰——遮擋問題。當多個物體相互遮擋時,傳統檢測器容易出現漏檢、誤檢現象,YOLO系列算法盡管在速度與精度上表現優異,但在處理密集遮擋目標時仍存在明顯短板。 ### 1.1 遮…

第一篇:Django簡介

第一篇&#xff1a;Django簡介 文章目錄 第一篇&#xff1a;Django簡介一、純手寫一個簡易版的web框架1、軟件開發架構2、HTTP協議3、簡易的socket服務端4、wsgiref模塊5、動靜態網頁6、后端獲取當前時間展示到html頁面上7、字典數據傳給html文件8、數據從數據庫中獲取的展示到…

【筆記】CentOS7部署K8S集群

一、初始化&#xff08;所有節點機器都要執行&#xff09; 1. 關閉firewall防火墻 systemctl disable firewalld.service systemctl stop firewalld.service2. 關閉SELinux 臨時關閉 setenforce 0永久關閉 vim /etc/selinux/config SELINUXenforcing 改成 SELINUXdisable…

Ethan獨立開發產品日報 | 2025-04-22

1. Agent Simulate 用數千個數字人來測試你的人工智能應用。 Agent Simulate 讓你在發布之前&#xff0c;能夠在一個安全的環境中模擬和測試大型語言模型&#xff08;LLM&#xff09;代理。它幫助你調試行為、加快迭代速度&#xff0c;并降低生產風險&#xff0c;專為代理開發…

Photoshop安裝與配置--簡單攻略版

下載地址:Photoshop軟件工具下載 安裝完成后&#xff0c;即可運行Photoshop.exe&#xff1b;打開工具頁面后&#xff0c;按照下面簡單配置即可 1.編輯-》首選項-》常規 或者直接快捷鍵CtrlK 暫存盤&#xff1a;一定要設置為非C盤 2.性能 3.文件處理 以上配置比較基礎&#xf…

新手村:正則化

機器學習-正則化方法 新手村&#xff1a;正則化 什么是正則化&#xff1f; 正則化&#xff08;Regularization&#xff09; 是一種用于防止機器學習模型 過擬合&#xff08;Overfitting&#xff09;的技術。它通過在模型的 損失函數 中添加一個 懲罰項&#xff08;Penalty Ter…

C語言 ——— 分支循環語句

目錄 分支循環語句 單分支 多分支 switch 分支語句 牛刀小試 判斷一個數是否是奇數 輸出 1-100之間 的奇數 計算 n 的階乘 計算 1! 2! 3! ... n! 在一個有序數組中查找具體的某一個數字 打印 100-200 之間的素數 求兩個整數的最大公約數 getchar函數 和 putc…

Element UI、Element Plus 里的表單驗證的required必填的屬性不能動態響應?

一 問題背景 想要實現&#xff1a; 新增/修改對話框中(同一個)&#xff0c;修改時“備注”字段非必填&#xff0c;新增時"備注"字段必填 結果發現直接寫不生效-初始化一次性 edit: [{ required: true, message: "請輸入備注", trigger: "blur" }…

秀丸編輯器 使用技巧

參考資料 第II部?知っていると便利な秀丸の機能 検索テキストファイルの16進表示について秀丸エディタヘルプ目次秀丸エディタ&#xff31;&#xff06;&#xff21;集(第9.6版)&#xff08;HTML 形式&#xff09;テンプレート&#xff08;Ver9.43対応版&#xff09; 目錄 零…

【期末復習-考試】軟件質量測試與保考試題庫(選擇題+填空題)

軟件質量測試與保證考試題庫&#xff08;選擇題 填空題&#xff09; 一、軟件測試基礎理論&#xff08;200 題&#xff09; &#xff08;一&#xff09;選擇題&#xff08;100 題&#xff09; 軟件測試的根本目的是&#xff08; 發現軟件中的缺陷&#xff09;A. 證明軟件無…