背景介绍
本项目旨在实现一个简单的Web服务,允许接收URL参数并通过HTTP请求调用外部API获取数据。该功能支持接收查询参数,并以HTML格式展示数据结果。核心功能包括:
1. 接收URL参数解析
2. 发送HTTP GET 请求
3. 处理API响应并生成HTML输出
思路分析
- 请求参数解析
通过urllib.parse解析用户输入的 URL 参数,提取查询键值对。例如,参数query=temperature=25°C被解析为query_params = {'temperature': '25', 'unit': '°C'}。 -
网络请求调用
使用requests.get()发送 GET 请求到指定 URL,获取API返回的数据。例如,调用https://api.example.com/users`,参数为name=John`。 -
数据处理与展示
- 将API返回的数据(如 JSON 或文本)转换为HTML格式,显示结果,例如:
html
<h1>用户信息:John</h1>
用户姓名:John
- 将API返回的数据(如 JSON 或文本)转换为HTML格式,显示结果,例如:
代码实现
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输出,实现了功能的完整实现。代码规范良好,可运行,并提供了清晰的解释,确保开发者能够轻松理解和应用该功能。