下面是“Python显示天气预报”的详细攻略:
1. 先获取天气数据
要显示天气预报,首先需要获取城市的天气数据。可以使用第三方API来获取这些数据。目前比较流行的API是百度天气API和和风天气API。这里我们以和风天气API为例,展示如何使用Python获取天气预报数据。
可以通过以下代码获取杭州市的实时天气:
import requests
url = 'https://free-api.heweather.net/s6/weather/now?location=杭州&key=YOUR_KEY'
result = requests.get(url).json()
if result['HeWeather6'][0]['status'] == 'ok':
weather = result['HeWeather6'][0]['now']['cond_txt'] + ',温度:' + result['HeWeather6'][0]['now']['tmp'] + '℃。'
print(weather)
解释一下代码:
我们使用了Python的requests
库来发送HTTP请求,并将响应结果解析成JSON格式。然后通过字典取值的方式获取到杭州市的实时天气,并打印出来。
其中,YOUR_KEY
需要替换成你自己的和风天气API的key。
2. 在网页中显示天气预报
获取到天气预报数据之后,我们需要将它显示在网页上。这里我们使用Python自带的Web框架——Flask,来搭建一个简单的天气预报网站。
先安装Flask:
pip install flask
然后创建一个app.py
文件,输入以下代码:
from flask import Flask, render_template
import requests
app = Flask(__name__)
@app.route('/')
def index():
url = 'https://free-api.heweather.net/s6/weather/now?location=杭州&key=YOUR_KEY'
result = requests.get(url).json()
if result['HeWeather6'][0]['status'] == 'ok':
weather = result['HeWeather6'][0]['now']['cond_txt'] + ',温度:' + result['HeWeather6'][0]['now']['tmp'] + '℃。'
else:
weather = '获取天气信息失败!'
return render_template('index.html', weather=weather)
if __name__ == '__main__':
app.run()
解释一下代码:
Flask
框架使用装饰器@app.route()
来指定不同的URL请求对应的响应函数。这里我们通过@app.route('/')
指定根URL请求对应的响应函数为index()
函数。
index()
函数中,我们获取了杭州市的实时天气,并将其保存在weather
变量中。然后通过render_template()
函数返回名为index.html
的模板文件,并将weather
变量传入模板文件中。模板文件中可以使用{{weather}}
的形式来获取这个变量。
最后,通过app.run()
函数启动Flask应用程序。
接下来,我们可以创建templates
文件夹,并在其中创建index.html
文件,输入以下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>天气预报</title>
</head>
<body>
<p>{{weather}}</p>
</body>
</html>
解释一下代码:
这是一个非常简单的HTML模板文件,用于显示天气预报。{{weather}}
是在Python代码中传入的变量,模板文件在渲染的时候会自动将此变量渲染成相应的值。
最后,我们在终端中执行python app.py
命令,即可启动一个简单的天气预报网站,可以在浏览器中访问http://localhost:5000/,查看效果。
3. 示例说明
下面展示两个使用和风天气API获取天气预报的Python示例。
示例1:获取北京市的天气预报
import requests
url = 'https://free-api.heweather.net/s6/weather/now?location=北京&key=YOUR_KEY'
result = requests.get(url).json()
if result['HeWeather6'][0]['status'] == 'ok':
weather = result['HeWeather6'][0]['now']['cond_txt'] + ',温度:' + result['HeWeather6'][0]['now']['tmp'] + '℃。'
print(weather)
示例2:获取深圳市的天气预报
import requests
url = 'https://free-api.heweather.net/s6/weather/now?location=深圳&key=YOUR_KEY'
result = requests.get(url).json()
if result['HeWeather6'][0]['status'] == 'ok':
weather = result['HeWeather6'][0]['now']['cond_txt'] + ',温度:' + result['HeWeather6'][0]['now']['tmp'] + '℃。'
print(weather)
这两个示例展示了如何获取不同城市的天气预报,并将其显示在命令行中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python显示天气预报 - Python技术站