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

本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面

文章目录

    • 1. 安装部署Flask
    • 2. 安装Cpolar内网穿透
    • 3. 配置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 Flaskapp = Flask(__name__)@app.route("/")
def hello():return "Hello, World!"

image-20231120164830537

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

image-20231120165319864

打开一个新的命令

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

cd C:\Users\wang\dev\python\flask

输入ls查看目录

image-20231120165938767

启动Flask

flask run

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

image-20231120170348720

2. 安装Cpolar内网穿透

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

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

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

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

image-20230831171159175

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

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

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

image-20231120171035750

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

image-20231120171152780

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

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

image-20231120171325137

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

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

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

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

image-20231120171616938

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

image-20231120171639329

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

image-20231120171707486

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

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

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

image-20231120171747421

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

image-20231120174238360

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

image-20231120174301657

相关文章:

  • 一个golang小白使用vscode搭建Ununtu20.04下的go开发环境
  • HCIA vlan练习
  • Maven排除依赖 exclusions
  • 带大家做一个,易上手的家常葱爆牛肉
  • MacOS受欢迎的数据库开发工具 Navicat Premium 15 中文版
  • 二进制部署高可用k8s集群V1.20.11版本
  • nginx 搭建docker 似有hub仓库
  • SqlAlchemy使用教程(五) ORM API 编程入门
  • MetaGPT-打卡-day2,MetaGPT框架组件学习
  • 网络安全概述
  • 旧路由重置新路由设置新路由设置教程|适用于自动获取IP模式
  • C#调用Newtonsoft.Json将bool序列化为int
  • HttpServletRequest getHeader、getHeaders、getIntHeader、getDateHeader区别
  • EMI兼容测试方案——匹配不同测试标准,准确高效!
  • STM32-串口解析框架
  • [case10]使用RSQL实现端到端的动态查询
  • DataBase in Android
  • JAVA并发编程--1.基础概念
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Otto开发初探——微服务依赖管理新利器
  • RxJS: 简单入门
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 算法之不定期更新(一)(2018-04-12)
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 优秀架构师必须掌握的架构思维
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • ​第20课 在Android Native开发中加入新的C++类
  • # 达梦数据库知识点
  • #NOIP 2014# day.1 T2 联合权值
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (三)mysql_MYSQL(三)
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)scrum常见工具列表
  • (转)人的集合论——移山之道
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • *上位机的定义
  • .gitignore文件—git忽略文件
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net中的Queue和Stack
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @RestController注解的使用
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [2023年]-hadoop面试真题(一)
  • [AIGC] Redis基础命令集详细介绍