You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从外部文件访问本地Flask应用,实现按姓名查询用户数据

解决方案

1. 改造Flask服务(main.py)

先把原有的HTML文本返回改成结构化的JSON API,同时支持通过姓名参数查询用户,方便后续脚本解析数据:

from flask import Flask, request, jsonify

app = Flask(__name__)

# 结构化存储用户数据,便于查询
users = [
    {"name": "John Doe", "date_of_birth": "3/14/1977", "occupation": "Director John Doe Healthcare"},
    {"name": "Joe Doe", "date_of_birth": "2/17/1972", "occupation": "Entrepreneur"},
    {"name": "Joseph Doe", "date_of_birth": "5/11/07", "occupation": "Student"},
    {"name": "Jotaro Doe", "date_of_birth": "8/30/09", "occupation": "Student"}
]

@app.route("/users", methods=["GET"])
def get_users():
    # 获取URL中的name查询参数
    target_name = request.args.get("name")
    
    if not target_name:
        # 未传参数时返回所有用户
        return jsonify(users)
    
    # 精确匹配姓名(忽略大小写)
    matched_users = [user for user in users if user["name"].lower() == target_name.lower()]
    
    if matched_users:
        return jsonify(matched_users)
    else:
        return jsonify({"error": f"未找到名为 {target_name} 的用户"}), 404

if __name__ == '__main__':
    # 绑定到所有网卡,允许外部访问,端口保持5000
    app.run(host='0.0.0.0', port=5000, debug=True)

2. 编写调用脚本(main_getter.py)

使用requests库发送GET请求到Flask服务,传入姓名参数获取用户信息。如果未安装requests,先执行pip install requests完成安装。

import requests

def fetch_user_info(name):
    # 替换<my_ip>为你的实际IP,本地测试用127.0.0.1即可
    api_endpoint = f"http://<my_ip>:5000/users?name={name}"
    try:
        response = requests.get(api_endpoint)
        response.raise_for_status()  # 捕获HTTP请求错误
        return response.json()
    except requests.exceptions.RequestException as e:
        return {"error": f"请求失败: {str(e)}"}

# 示例调用
if __name__ == "__main__":
    query_name = "John Doe"
    user_data = fetch_user_info(query_name)
    print(user_data)

使用步骤

  1. 运行main.py启动Flask服务,确认服务正常运行在<my_ip>:5000
  2. 运行main_getter.py,修改query_name为你要查询的姓名,即可获取该用户的完整信息

内容的提问来源于stack exchange,提问作者Wishisht Bahl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 10:20:31