📜  使用 Flask 创建天气应用程序 | Python

📅  最后修改于: 2022-05-13 01:54:22.760000             🧑  作者: Mango

使用 Flask 创建天气应用程序 | Python

先决条件:烧瓶安装

Flask 是一个用Python编写的轻量级框架。它是轻量级的,因为它不需要特定的工具或库并允许快速的 Web 开发。今天我们将使用烧瓶作为 Web 框架创建一个天气应用程序。这个天气网络应用程序将提供搜索城市的当前天气更新。

基本设置:

创建一个文件并将其命名为weather.py

Linux命令创建文件

touch weather.py 

现在,创建一个文件名为index.html的文件夹模板

Linux命令创建文件夹和文件

mkdir templates && cd templates && touch index.html 

项目文件夹将如下所示:

编辑文件:
使用来自 Weather API 的您自己的 API 密钥并将其放在 API 变量中。现在编辑weather.py文件。

from flask import Flask, render_template, request
  
# import json to load JSON data to a python dictionary
import json
  
# urllib.request to make a request to api
import urllib.request
  
  
app = Flask(__name__)
  
@app.route('/', methods =['POST', 'GET'])
def weather():
    if request.method == 'POST':
        city = request.form['city']
    else:
        # for default name mathura
        city = 'mathura'
  
    # your API key will come here
    api = api_key_here
  
    # source contain json data from api
    source = urllib.request.urlopen('http://api.openweathermap.org/data/2.5/weather?q =' + city + '&appid =' + api).read()
  
    # converting JSON data to a dictionary
    list_of_data = json.loads(source)
  
    # data for variable list_of_data
    data = {
        "country_code": str(list_of_data['sys']['country']),
        "coordinate": str(list_of_data['coord']['lon']) + ' ' 
                    + str(list_of_data['coord']['lat']),
        "temp": str(list_of_data['main']['temp']) + 'k',
        "pressure": str(list_of_data['main']['pressure']),
        "humidity": str(list_of_data['main']['humidity']),
    }
    print(data)
    return render_template('index.html', data = data)
  
  
  
if __name__ == '__main__':
    app.run(debug = True)

导航到 templates/index.html 并编辑它:链接到索引文件。

现在你可以运行服务器来查看天气应用了——

python weather.py