背景介绍
本项目旨在帮助用户通过输入城市名称和日期,获取天气信息。该应用采用HTML、CSS和JavaScript实现,无需依赖外部框架或API,完全本地运行。通过JSON格式存储天气数据,实现数据的读取、解析和可视化展示。
思路分析
- 需求分析
用户需要输入城市名称和日期,应用需解析JSON数据并输出天气信息。本地存储和读取数据是关键,需考虑数据的持久化存储和格式转换。 -
技术选型
使用Python实现,因为本地运行且无需依赖外部框架,适合实现本地数据处理功能。JSON作为数据存储格式,能够方便地读取和解析。 -
数据结构
- JSON格式存储天气信息:如
{
"city": "北京",
"date": "2023-04-01",
"weather": "晴",
"temp": "25℃"
} - 数据读取与解析:通过
json.load()读取文件内容,提取字段并构造响应。
- JSON格式存储天气信息:如
代码实现
HTML结构
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>天气预报</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
color: #333;
}
h1 {
text-align: center;
color: #2c3e50;
}
input, label {
display: block;
margin-bottom: 5px;
}
#result {
margin-top: 10px;
padding: 10px;
border: 1px solid #ccc;
background-color: #fff;
}
</style>
</head>
<body>
<h1>天气预报:北京</h1>
<label>城市名称:</label><input type="text" id="city" placeholder="北京" value="北京"><br>
<label>日期:</label><input type="date" id="date" value="2023-04-01"><br>
<button onclick="getWeather()">获取天气信息</button>
<div id="result" style="display: none;">
<h2>天气预报:</h2>
<p id="weather">晴,温度25℃</p>
</div>
<script>
function getWeather() {
const city = document.getElementById('city').value;
const date = document.getElementById('date').value;
const json = loadJSON('weather.json');
const result = document.getElementById('result');
result.style.display = 'block';
result.innerHTML = `天气预报:${json.weather}, 温度${json.temp}℃`;
}
function loadJSON(filename) {
const content = document.getElementById('content');
content.innerHTML = '';
const reader = new FileReader();
reader.onload = function () {
const data = JSON.parse(reader.result);
content.innerHTML = `天气预报:
<p>${data.weather}, 温度${data.temp}℃</p>`;
};
reader.readAsText(filename);
}
</script>
</body>
</html>
示例代码(Python)
import json
def get_weather(city, date):
# 本地存储天气数据
with open('weather.json', 'w', encoding='utf-8') as f:
f.write(json.dumps({
'city': city,
'date': date,
'weather': '晴',
'temp': 25
}, indent=4))
# 示例输入
city = '北京'
date = '2023-04-01'
get_weather(city, date)
总结
本项目通过Python实现,结合JSON数据存储和解析,完成了本地运行的天气预报网页应用。该实现涵盖了数据读取、解析和可视化展示的核心功能,同时培养了数据结构与算法的基础知识。该实现可作为学习数据结构和算法的实践项目,注重响应机制的实现,并保持项目适中难度,1~3天即可完成。
通过以上实现,用户能够直观地看到天气信息,并通过本地数据处理提升应用的灵活性和扩展性。