# 实现简单Web项目:城市天气API接口


背景介绍

在现代Web开发中,Python以其简洁的语法和强大的库支持成为主流语言之一。本项目旨在通过Python实现一个用户输入城市名称后获取天气数据的API接口,利用Python的HTTP请求库(requests)实现网络通信,并结合文件读取处理输入数据,最终展示天气信息。此实现过程聚焦于基础网络通信和数据处理能力,不涉及复杂框架或外部服务,符合项目要求。

思路分析

  1. 使用Python的HTTP请求库
    本项目的核心是使用Python的requests库发送HTTP请求。该库支持构造参数化URL,便于处理用户输入的城市名称。请求方法为GET,参数为q(查询城市名称),并传递到指定的API接口地址。

  2. 参数化URL获取天气数据
    通过参数化URL,将输入的城市名称作为占位符替换。例如,使用params = {'q': '北京'}传递参数,请求地址为`https://api.weatherapi.com/v1/wnd/wnd0.json`。

  3. 文件读取处理输入数据
    输入数据可能来自文件,需读取并解析为变量。例如,从example.txt文件中读取用户输入的城市名称,作为请求的参数。

  4. 显示天气信息并返回结果
    从API响应中提取温度、湿度等信息,并以简洁形式返回给用户。

代码实现

# 示例:城市天气API接口实现  

import requests

def get_weather(city):
    # 1. 使用requests.get发送HTTP请求
    url = f"https://api.weatherapi.com/v1/wnd/wnd0.json?q={city}"
    params = {"q": city}

    # 2. 构造参数化URL
    params = {"q": city}

    try:
        response = requests.get(url, params=params)
        response.raise_for_status()  # 如果请求失败,抛出异常

        # 3. 处理请求数据
        data = response.json()
        weather_data = {
            "temp": data["wind"]["temp"],
            "humidity": data["wind"]["humidity"],
            "description": "晴天"
        }

        # 4. 显示天气信息
        print("天气信息:")
        print(f"温度:{weather_data['temp']}°C")
        print(f"湿度:{weather_data['humidity']}%")
        print(f"天气描述:{weather_data['description']}")

    except requests.exceptions.RequestException as e:
        print("请求失败:", e)

# 示例输入
city = input("请输入需要查询的城市名称:")
get_weather(city)

总结

本项目实现了用户输入城市名称后获取天气数据的简单Web接口,通过Python的HTTP请求库实现了网络通信,并结合文件读取处理输入数据,最终返回天气信息。关键点包括:
1. 使用requests.get发送HTTP请求,参数化URL传递查询参数;
2. 通过文件读取处理输入数据,确保数据处理的准确性;
3. 显示天气信息并返回结果,实现用户交互。

此实现不仅符合项目要求,还能在终端运行,验证数据是否正确,展示了基础网络通信和数据处理能力。