背景介绍
Web开发是后端的基础功能之一,本项目旨在通过Python实现一个简单的网页,用户输入城市名称后,能实时显示该城市当前的天气数据。该功能要求:
1. 使用文件读取功能读取天气数据
2. 通过Python的requests库获取天气API数据
3. 显示天气信息到网页中
思路分析
- 数据读取
项目需要从本地存储或模拟数据中读取天气信息。由于要求独立运行,可以选择本地存储,例如:- 本地路径:
data/weather.json - 存储结构:包含城市名称、天气状态和温度等字段
- 本地路径:
- 数据处理
- 使用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. 可运行性验证
- 本地环境运行:确保已安装
requests库并创建weather.json文件,内容示例如下:{ "city": "北京", "status": "晴天", "temp": 20 } - 测试过程:
python weather_app.py输出结果中包含天气信息,系统自动保存数据到本地文件。
总结
本项目通过Python实现了一个简单的网页功能,核心知识点包括:
1. 使用文件读写实现本地数据存储
2. 通过requests库获取天气数据
3. 结合HTML格式展示结果
该项目可在本地运行,无需依赖外部服务,适合学习Web开发的基础功能。