如何配置Flask端点使其可被同网络其他计算机访问?
解决Flask端点允许同网络其他计算机访问的问题
要让同网络中的设备访问你的Flask端点,需要完成以下几个关键配置:
1. 修改Flask的绑定地址
Flask默认仅绑定127.0.0.1(本机回环地址),因此只能本机访问。你需要将其绑定到0.0.0.0,这样服务会监听所有可用的网络接口。
方式一:在代码中指定
在你的代码末尾添加app.run()并指定host参数:
from flask import Flask, request, jsonify import requests app = Flask(__name__) countries = [ {"id": 1, "name": "Thailand", "capital": "Bangkok", "area": 513120}, {"id": 2, "name": "Australia", "capital": "Canberra", "area": 7617930}, {"id": 3, "name": "Egypt", "capital": "Cairo", "area": 1010408}, ] @app.get("/countries") def get_countries(): return jsonify(countries) # 新增配置:绑定所有网络接口,端口保持5000 if __name__ == "__main__": app.run(host='0.0.0.0', port=5000)
方式二:通过命令行启动时指定
如果使用flask run命令启动服务,直接添加--host参数:
# Windows系统设置环境变量 set FLASK_APP=你的文件名.py # Linux/macOS系统设置环境变量 export FLASK_APP=你的文件名.py # 启动服务并绑定所有网络接口 flask run --host=0.0.0.0
2. 开放防火墙端口
运行Flask的机器防火墙会默认阻止外部设备访问5000端口,需要手动允许:
- Windows:打开「Windows Defender防火墙」→「高级设置」→「入站规则」→「新建规则」,选择端口类型,允许5000端口的TCP连接。
- Linux:以
ufw为例(Ubuntu/Debian系列),执行以下命令开放端口:sudo ufw allow 5000/tcp sudo ufw reload - macOS:打开「系统设置」→「网络」→「防火墙」→「选项」,添加Python程序或手动开放5000端口。
3. 其他设备的访问方式
其他同网络设备需要通过运行Flask机器的局域网IP地址访问,避免使用电脑名称(名称解析可能存在异常):
- 获取局域网IP:
- Windows:执行
ipconfig,找到对应网络适配器下的IPv4地址(如192.168.1.100)。 - Linux/macOS:执行
ifconfig或ip addr,找到对应网络接口的IPv4地址。
- Windows:执行
- 访问示例:
http://192.168.1.100:5000/countries
内容的提问来源于stack exchange,提问作者CS1999
相关产品推荐
相关产品推荐

