当前位置: 首页 > article >正文

create-a-weather-app-using-flask-python

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

原文:https://www . geesforgeks . org/create-a-weather-app-use-flask-python/

先决条件: 烧瓶安装

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

基本设置:

创建一个文件,并将其命名为

创建文件的 Linux 命令

touch weather.py 

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

Linux 命令创建一个文件夹和一个文件

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

项目文件夹看起来像:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

编辑文件:
从天气 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)

导航至模板/index.html 并编辑:链接至索引文件。

现在,您可以运行服务器来查看天气应用程序–

 python weather.py 

http://www.kler.cn/a/468351.html

相关文章:

  • 26考研资料分享 百度网盘
  • qml PathView详解
  • 【知识协作工具】confluence、zentao、ONLYOFFICE、kooteam、cloudreve
  • 华为设备的VRP系统详解
  • qt鼠标右键菜单
  • OpenGL材质系统和贴图纹理
  • pytorch张量列表索引和多维度张量索引比较
  • ElasticSearch10-性能优化
  • 左神算法基础巩固--2
  • 深入MySQL复杂查询优化技巧
  • Nginx:性能优化
  • 【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法)
  • Hadoop•FinalShell连接VMware免密登录
  • centos7搭建大数据集群环境准备--安装java和scala环境
  • Lua语言的数据结构
  • (Pytorch)torch.autograd.grad()与torch.autograd.backward()
  • 爬取数据时如何设置合适的请求频率?
  • 八大排序算法,快排的三种递归非递归实现,归并的递归非递归实现,排序算法复杂度及稳定性分析【有图解】
  • Vue3实现PDF在线预览功能
  • 解析 SQL 中的 NULL 与比较操作:NULL 值与任何值的比较会返回 UNKNOWN
  • Visual Studio C++使用笔记
  • 【数学建模笔记】评价模型-基于熵权法的TOPSIS模型
  • PyTorch通过搭建LSTM网络,对MNIST手写数字数据集进行了训练和评估,实现了对手写数字的分类功能
  • 生成模型的现状2025年的新兴趋势
  • 手机投屏到电视的3种选择:无线本地投屏,无线远程投屏,AirPlay投屏
  • 设计模式 结构型 享元模式(Flyweight Pattern)与 常见技术框架应用 解析