如何本地安装Python Flask并结合内网穿透实现远程开发

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • [1. 安装部署 Flask](#1. 安装部署 Flask)
    • [2. 安装 Cpolar 内网穿透](#2. 安装 Cpolar 内网穿透)
    • [3. 配置 Flask 的 web 界面公网访问地址](#3. 配置 Flask 的 web 界面公网访问地址)
    • [4. 公网远程访问 Flask 的 web 界面](#4. 公网远程访问 Flask 的 web 界面)

本篇文章主要讲解如何在本地安装 Flask,以及如何将其 web 界面发布到公网进行远程访问。

Flask 是目前十分流行的 web 框架,采用 Python 编程语言来实现相关功能。较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合 MVC 模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或 Web 服务的实现。

另外,Flask 还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

轻量级 web 开发框架:Flask 本地部署及公网远程访问

1. 安装部署 Flask

本篇文章代码使用 Python3 运行

安装环境:需要在电脑上安装 Python3 和 pip3。建议安装最新版本

检查是否有安装了 pip 的可用 Python,查看 Python 和 pip 版本:

复制代码
C:> py --version
Python 3.N.N
C:> py -m pip --version
pip X.Y.Z from ... (python 3.N.N)

使用 pip 安装和更新:

复制代码
$ pip install -U Flask

创建环境:

复制代码
conda create -n FLASK python=3.10

激活环境:

复制代码
conda activate FLASK

创建项目目录:

复制代码
mkdir FLASK

进入到创建的目录:

复制代码
cd FLASK

在当前目录启动 VS Code:

复制代码
code .

在 VS Code 里 FLASK 下新建一个文件,名字为 app.py

粘贴下面命令,并保存

复制代码
# save this as app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"

在下方 TERMINAL 里输入ls查看目录位置

打开一个新的命令

输入 cd 空格加上刚才 vs code 的目录,例如

复制代码
cd C:\Users\wang\dev\python\flask

输入ls查看目录

启动 Flask

text 复制代码
flask run

打开一个新的浏览器,输入http://127.0.0.1:5000/,进入到 HelloWorld 的 web 界面。

2. 安装 Cpolar 内网穿透

上面在本地成功部署了 Flask,并局域网访问成功,下面我们安装 Cpolar 内网穿透工具,通过 cpolar 转发本地端口映射的 http 公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装步骤:

cpolar 官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
shell 复制代码
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
shell 复制代码
sudo systemctl enable cpolar
  • 启动 cpolar 服务
shell 复制代码
sudo systemctl start cpolar

cpolar 安装成功后,在外部浏览器上访问 9200 端口 即:【http://局域网 ip:9200】,使用 cpolar 账号登录(如没有账号,可以点击下面免费注册),登录后即可看到 cpolar web 配置界面,结下来在 web 管理界面配置即可

3. 配置 Flask 的 web 界面公网访问地址

点击左侧仪表盘的隧道管理------创建隧道,创建一个 Flask 的 cpolar 公网地址隧道:

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择 http
  • 本地地址:5000 (局域网访问的端口)
  • 域名类型:免费选择随机域名
  • 地区:选择 China Top
  • 点击创建

隧道创建成功后,点击左侧的状态------在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是 http 和 https

4. 公网远程访问 Flask 的 web 界面

使用上面的 cpolar https 公网地址在任意设备的浏览器访问,即可成功看到 Flask 的 web 界面,这样一个公网地址且可以远程访问就创建好了,无需自己购买云服务器,即可发布到公网访问。

由于以上使用 cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。

我一般会使用固定二级子域名,因为我希望将网址发送给开发人员分工合作,小型团队在短时间内就可以使用固定的公网地址完成功能丰富的中小型网站或 Web 服务的实现。它是一个固定、易记的公网地址(例如:Flask.cpolar.cn)因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn 已备案】

注意需要将 cpolar 套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn 已备案】

登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

保留成功后复制保留成功的二级子域名的名称

返回登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

最后,我们使用固定的公网地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了。

觉得有用的话点个赞 👍🏻 呗。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

相关推荐
努力学习的明2 分钟前
MQ解决高并发下订单问题,实现流量削峰
开发语言·后端·并发·mq
不爱吃米饭_8 分钟前
我用Trae+豆包+火山方舟,开发了一个美食推荐助手
python
BMW_i816 分钟前
C++---类和对象(中)
开发语言·c++
ZHPEN118 分钟前
python打卡day52
开发语言·python
点云SLAM36 分钟前
PyTorch 中mm和bmm函数的使用详解
人工智能·pytorch·python·深度学习·机器学习·矩阵乘法·3d深度学习
is08151 小时前
简说 python
开发语言·python
小庞在加油1 小时前
从零到一:C语言基础入门学习路线与核心知识点全解析
c语言·开发语言·学习
hmywillstronger1 小时前
【Python】【Rhino】assign column mark into bearing area‘s user text attributing
开发语言·python
liulilittle1 小时前
_mm_aeskeygenassist_si128 硬件指令执行的操作
开发语言·c++·aes
喵~来学编程啦1 小时前
【全队项目】从GAN到ESRGAN的超分辨率处理
开发语言·python·算法