当前位置: 首页 > news >正文

基于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博客

相关文章:

  • 开源模型应用落地-语音合成-Spark-TTS-零样本克隆与多语言生成的突破
  • 浏览器相关知识点
  • 【AI 加持下的 Python 编程实战 2_09】DIY 拓展:从扫雷小游戏开发再探问题分解与 AI 代码调试能力(上)
  • Joint communication and state sensing under logarithmic loss
  • iOS18 MSSBrowse闪退
  • Unity 创建、读取、改写Excel表格数据
  • 理解计算机系统_网络编程(1)
  • 自建开源远程协助服务RustDesk —— 筑梦之路
  • Axure中继器表格:实现复杂交互设计的利器
  • 【Bug】 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
  • 【工具变量】各市ZF数字治理指标数据集(2001-2024年)
  • 大语言模型(LLM)的Prompt Engineering:从入门到精通
  • 同z科技面经
  • 2024从Maven-MySQL-Nginx部署
  • 【解决】layui layer的提示框,弹出框一闪而过的问题
  • 众趣科技X世界读书日丨数字孪生技术赋能图书馆空间智慧化运营
  • RPC通信原理实战
  • 7.7 Axios+Redux+JWT全链路实战:打通前后端API通信最佳实践
  • 【论文阅读】Hierarchical Group-Level Emotion Recognition
  • Sklearn 与 TensorFlow 机器学习实用指南-第八章 降维-笔记
  • 河南省鹤壁市人大常委会副主任李杰接受审查调查
  • 生态环境部谈拿手持式仪器到海边测辐射:不能测量水中放射性核素含量
  • 国家卫健委:坚决反对美国白宫网站翻炒新冠病毒“实验室泄漏”
  • 威廉·透纳诞辰250周年|他是现代艺术之父
  • 神二十航天员公布
  • 云南城投去年营收约19.29亿元,亏损4945万元