基于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/binDownload 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 Flask

app = 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 Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello, Flask + Ngrok!'

if __name__ == '__main__':
    # 开发模式下可打开 debug
    app.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博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值