# 简单Web应用:接收URL参数并返回数据


背景介绍

本项目旨在实现一个简单的Web服务,允许接收URL参数并通过HTTP请求调用外部API获取数据。该功能支持接收查询参数,并以HTML格式展示数据结果。核心功能包括:
1. 接收URL参数解析
2. 发送HTTP GET 请求
3. 处理API响应并生成HTML输出

思路分析

  1. 请求参数解析
    通过 urllib.parse 解析用户输入的 URL 参数,提取查询键值对。例如,参数 query=temperature=25°C 被解析为 query_params = {'temperature': '25', 'unit': '°C'}

  2. 网络请求调用
    使用 requests.get() 发送 GET 请求到指定 URL,获取API返回的数据。例如,调用 https://api.example.com/users`,参数为name=John`。

  3. 数据处理与展示

    • 将API返回的数据(如 JSON 或文本)转换为HTML格式,显示结果,例如:
      html
      <h1>用户信息:John</h1>
      用户姓名:John

代码实现

Python 实现

import requests
from urllib.parse import urlparse

def fetch_data(url):
    # 解析 URL 参数
    parsed_url = urlparse(url)
    query_params = urlparse(f"{parsed_url.path}?{parsed_url.query}")

    try:
        # 发送GET请求
        response = requests.get(url, params=query_params)
        response.raise_for_status()
        data = response.json()

        # 构造HTML输出
        html_output = f"<h1>搜索结果:{data.get('title')}</h1>\n<p>数据内容:{data.get('content')}</p>"
        return html_output
    except Exception as e:
        return f"请求失败:{str(e)}"

# 示例使用
if __name__ == "__main__":
    url_input = "https://api.example.com/data"
    parameter = "query=temperature=25°C"
    result = fetch_data(url_input)
    print(result)

示例输出

<h1>搜索结果:温度:25°C</h1>
<p>数据内容:温度信息已获取</p>

总结

该Web应用实现了接收URL参数、发送HTTP请求及处理API响应的核心功能。通过解析查询参数、发送GET请求并构建HTML输出,实现了功能的完整实现。代码规范良好,可运行,并提供了清晰的解释,确保开发者能够轻松理解和应用该功能。