# 基于JSON读取的网页应用开发实践


背景介绍

随着在线服务的普及,用户对实时天气信息的需求日益增长。本项目采用Python技术栈,结合JSON数据处理能力,实现对城市名称的实时天气查询功能。通过前端HTML、CSS和JavaScript的结合,构建了一个支持用户输入城市名称并动态显示天气信息的网页应用。

思路分析

  1. 核心架构:采用基于JSON的请求方式,通过API或本地缓存获取天气数据
  2. 数据结构:使用字典形式存储城市天气信息,包含城市名称和天气状态
  3. 前端逻辑:通过HTML表单实现用户输入,使用CSS样式美化界面,用JavaScript动态生成天气信息展示

代码实现

Python实现部分

import json

def fetch_weather(city_name):
    """从JSON文件读取城市天气信息"""
    with open('weather.json', 'r') as f:
        data = json.load(f)
    return data.get(city_name, {'status': '加载失败'})

# 示例使用
weather_data = fetch_weather('北京')
print(weather_data)

HTML前端实现

<!DOCTYPE html>
<html>
<head>
    <title>城市天气</title>
    <style>
        #weather-box {
            width: 300px;
            height: 150px;
            padding: 20px;
            border: 1px solid #ccc;
            margin: 10px auto;
        }
        #weather-info {
            margin-bottom: 10px;
        }
    </style>
</head>
<body>
    <h2 id="weather-box">北京今日天气:晴/温25°C</h2>
    <div id="weather-info">
        <p id="current-time">当前时间:2023-10-05 12:00</p>
        <p id="weather-status">天气状况:晴</p>
    </div>

    <script>
        const cityInput = document.getElementById('city-input');
        const weatherInfo = document.getElementById('weather-info');

        cityInput.addEventListener('input', function () {
            const city = cityInput.value.trim();
            if (!city) return;

            const data = fetch_weather(city);
            if (data && data['status'] === '加载成功') {
                weatherInfo.innerHTML = `
                    <p id="current-time">${new Date().toLocaleTimeString()}</p>
                    <p id="weather-status">${data['status']}</p>
                `;
            }
        });
    </script>
</body>
</html>

总结

本项目通过Python实现JSON数据读取和天气信息动态渲染,展示了技术栈中文件读写和前端逻辑的结合应用。该项目的学习重点在于JSON数据处理和现代Web开发的基础知识,能够帮助开发人员在实际项目中有效利用这些技术能力。通过本地开发环境实现功能,不仅满足了开发需求,还增强了项目的可扩展性和灵活性。