📅  最后修改于: 2023-12-03 15:36:27.893000             🧑  作者: Mango
Flask 是一个使用 Python 编写的 Web 应用程序框架,因为其简单而又灵活的设计,使得它成为了 Python Web 开发中的主要工具之一。本文将介绍如何使用 Flask 创建一个天气应用程序。
在本篇文章中,我们将使用 OpenWeatherMap API 获取天气数据。因此,你需要先去注册一个账号,并获取你自己的 API Key。你可以在OpenWeatherMap 的官方网站注册一个免费账号。
在开始之前,您需要确保您已经安装了 Flask。如果没有安装,可以通过 pip 来进行安装:
pip install Flask
我们首先需要创建 Flask 应用程序的框架。创建一个名为 app.py 的文件,并编写以下代码:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
上述代码中,我们使用 Flask 的 render_template
方法渲染了一个名为 index.html 的页面,同时在 if __name__ == '__main__'
的语句块中,我们开启了 Flask Web 服务器的调试模式。
接下来,我们需要在主目录中创建一个名为 templates 的文件夹,并在该文件夹中创建 index.html 文件。在 index.html 文件中,我们可以编写我们想要的 HTML/CSS/JavaScript 代码。
在本篇文章中,我们使用 OpenWeatherMap API 来获取天气数据。使用 API 需要以下步骤:
下面是获取天气数据的代码片段:
import requests
# 指定 API 的 END POINT 和 API Key
url = 'https://api.openweathermap.org/data/2.5/weather?q=Shenzhen,CN&appid=YOUR_API_KEY'
# 发送请求并获取数据
response = requests.get(url)
data = response.json()
在上述代码片段中,我们指定了 city 和 Country Code 并指定了我们自己的 API Key,然后使用 requests 库向 OpenWeatherMap 发送了请求,并将响应转换成 JSON 格式后赋值给 data 变量。
在获取天气数据之后,我们需要将其呈现在页面上。我们首先需要将天气数据传递到 index.html 页面中。修改 app.py 文件的代码如下:
from flask import Flask, render_template, jsonify
import requests
app = Flask(__name__)
@app.route('/')
def index():
# 获取天气数据
url = 'https://api.openweathermap.org/data/2.5/weather?q=Shenzhen,CN&appid=YOUR_API_KEY'
response = requests.get(url)
data = response.json()
# 将天气数据传递到 index.html 页面中
return render_template('index.html', data=data)
if __name__ == '__main__':
app.run(debug=True)
上述代码中,我们新增了一个 /data
的路由,并在路由中获取天气数据,并将其转换为 JSON 格式,最终将其传递到 index.html 页面中。
在 index.html 页面中,我们可以使用 Jinja2 模板引擎来渲染数据。修改 index.html 文件的代码如下:
<!doctype html>
<html>
<head>
<title>Weather App</title>
</head>
<body>
<h1>Current Weather in {{ data['name'] }}</h1>
<p>Temperature: {{ round(data['main']['temp'] - 273.15) }}°C</p>
<p>Weather: {{ data['weather'][0]['main'] }}</p>
</body>
</html>
在上述代码中,我们通过 Jinja2 模板引擎将从 Flask 应用程序中传递过来的 JSON 格式数据呈现在了页面上。
到此,我们就成功地创建了一个使用 Flask 创建天气应用程序的案例。
本文介绍了如何使用 Flask 框架和 OpenWeatherMap API 来创建一个天气应用程序,并主要涉及到了 Flask 的路由和模板引擎以及 OpenWeatherMap API 的使用。希望本文对您有所帮助。