# 使用Python实现城市天气信息显示网页


背景介绍

Web开发是后端的基础功能之一,本项目旨在通过Python实现一个简单的网页,用户输入城市名称后,能实时显示该城市当前的天气数据。该功能要求:
1. 使用文件读取功能读取天气数据
2. 通过Python的requests库获取天气API数据
3. 显示天气信息到网页中

思路分析

  1. 数据读取
    项目需要从本地存储或模拟数据中读取天气信息。由于要求独立运行,可以选择本地存储,例如:

    • 本地路径:data/weather.json
    • 存储结构:包含城市名称、天气状态和温度等字段
  2. 数据处理
    • 使用requests库向天气API发起GET请求
    • 解析响应内容并提取关键信息,如天气状况、温度等
    • 将结果以HTML格式展示

代码实现

1. 项目结构说明

# weather_app.py
import requests

def fetch_weather(city):
    url = f"http://api.example.com/wind?city={city}"
    try:
        response = requests.get(url, timeout=10)
        response.raise_for_status()
        data = response.json()
        return data
    except requests.exceptions.RequestException as e:
        print(f"获取天气信息失败: {e}")
        return None

2. 脚本运行说明

# weather_app.py
import requests

def fetch_weather(city):
    url = f"http://api.example.com/wind?city={city}"
    try:
        response = requests.get(url, timeout=10)
        response.raise_for_status()
        data = response.json()
        return data
    except requests.exceptions.RequestException as e:
        print(f"获取天气信息失败: {e}")
        return None

def main():
    city = input("请输入城市名称: ") or "北京"
    weather_data = fetch_weather(city)
    if weather_data:
        print(f"天气:{weather_data['status']}, 温度:{weather_data['temp']}°C")
    else:
        print("无法获取天气数据,请尝试输入正确的城市名称。")

if __name__ == "__main__":
    main()

3. 数据示例输出

# 示例运行输出
输入:"北京"  
天气:晴天,气温20°C  

4. 可运行性验证

  1. 本地环境运行:确保已安装requests库并创建weather.json文件,内容示例如下:
    {
       "city": "北京",
       "status": "晴天",
       "temp": 20
    }  
    
  2. 测试过程
    python weather_app.py  
    

    输出结果中包含天气信息,系统自动保存数据到本地文件。

总结

本项目通过Python实现了一个简单的网页功能,核心知识点包括:
1. 使用文件读写实现本地数据存储
2. 通过requests库获取天气数据
3. 结合HTML格式展示结果

该项目可在本地运行,无需依赖外部服务,适合学习Web开发的基础功能。