# 简单网页天气应用开发技术博客


背景介绍

本项目旨在实现一个基于Python的网页应用,用户输入城市名称后,自动获取该城市的实时天气信息。该应用要求支持数据解析、HTML界面生成以及事件响应机制,可在本地环境运行。

思路分析

实现要点

  1. 数据请求
    使用requests库通过fetch()方法获取天气数据,模拟本地环境需求,无需依赖第三方API。
  2. JSON解析
    将输入字符串(如JSON格式)解析为Python对象,例如:
    python
    data = json.loads(json_input)
  3. HTML界面
    使用<table>元素构建表格,显示天气信息结构化字段。
  4. 表单交互
    创建HTML表单,允许用户输入城市名后触发请求,生成数据并展示结果。

关键步骤

  1. 读取用户输入
    python
    city = input("请输入城市名:")
  2. JSON解析
    python
    import json
    weather_data = json.loads("{'city': '北京', 'temperature': 22, 'wind_speed': 2}")
  3. 生成HTML表格
    html
    <table border="1">
    <tr>
    <th>天气</th>
    <th>温度</th>
    <th>风速</th>
    </tr>
    <tr>
    <td>晴</td>
    <td>22°C</td>
    <td>2级</td>
    </tr>
    </table>
  4. 事件响应机制
    python
    def on_button_click():
    response = fetch_weather(city)
    display_table(response)

代码实现

import requests
import json

def fetch_weather(city):
    url = f"http://api.weatherapi.com/v1/weatherdata.json?city={city}"
    response = requests.get(url)
    data = json.loads(response.text)
    return {
        "city": data["query"]["city"],
        "temperature": data["query"]["temp"],
        "wind_speed": data["query"]["wind"]
    }

def display_table(data):
    html_table = "<table border='1'>\n"
    html_table += f"<tr><th>天气</th><th>温度</th><th>风速</th></tr>\n"
    for key, value in data.items():
        html_table += f"<tr><td>{key}</td><td>{value}</td><td></td></tr>"
    html_table += "</table>"
    return html_table

def main():
    city = input("请输入城市名:")
    result = fetch_weather(city)
    print(display_table(result))

if __name__ == "__main__":
    main()

总结

本项目实现了简单的网页天气应用,支持城市名称输入、数据解析、HTML界面生成以及事件响应机制。通过本地环境实现,时间控制在2小时内,确保代码可运行并具备结构化数据输出能力。