背景介绍
随着在线服务的普及,用户对实时天气信息的需求日益增长。本项目采用Python技术栈,结合JSON数据处理能力,实现对城市名称的实时天气查询功能。通过前端HTML、CSS和JavaScript的结合,构建了一个支持用户输入城市名称并动态显示天气信息的网页应用。
思路分析
- 核心架构:采用基于JSON的请求方式,通过API或本地缓存获取天气数据
- 数据结构:使用字典形式存储城市天气信息,包含城市名称和天气状态
- 前端逻辑:通过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开发的基础知识,能够帮助开发人员在实际项目中有效利用这些技术能力。通过本地开发环境实现功能,不仅满足了开发需求,还增强了项目的可扩展性和灵活性。