基于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
-
访问 https://ngrok.com 并注册免费账号。
-
登录控制面板,复制 Authtoken。
-
在终端中执行:
ngrok config add-authtoken <YOUR_AUTHTOKEN>
此命令会将 Authtoken 写入 ~/.ngrok2/ngrok.yml
,用于后续隧道授权
4. 在 PyCharm 中创建 Flask 项目
-
新建项目:File → New Project → Pure Python,选择上述虚拟环境。
-
添加依赖:在 PyCharm 的 Terminal 中执行
pip install Flask
。 -
项目结构:
my_flask_app/
│
├── app.py
├── requirements.txt
└── venv/
-
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博客