树莓派+python flask 调用天气api接口实现天气数据web

*注:树莓派我用的是在Win10上面的虚拟机镜像 *


前言

由于我虚拟机用的是Windows自带的hyper-v虚拟机,稍微有点不太方便,所以我在Windows宿主机上的pycharm上编写flask web然后发到我的虚拟机上运行。

提示:以下是本篇文章正文内容,下面案例可供参考

一、flask是什么?

Flask是由python实现的一个web微框架,让我们可以使用Python语言快速实现一个网站或Web服务。

  • 安装flask库
pip install flask

二、使用步骤

1.引入库

代码如下(示例):

from flask import Flask

注意:引入库的时候是从flask(f小写)导入 Flask(F大写)

2.写一个简单的flask

就拿入门最普遍的helloworld来举例子:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return 'Hello World'
if __name__ == '__main__':
    app.debug = True # 设置调试模式,生产模式的时候要关掉debug
    app.run()

点后右键运行控制台就会出现:

这里的URL我们复制粘贴到浏览器去看一下:
在这里插入图片描述
这时候我们浏览器页面就有“hello world”了。那我们如何做到调用api实现天气web数据展示呢。
接着往下看↓

3.实验准备

要调用api接口,那必然需要一个接口。我在本次实验中所用的api是我在聚合数据接口网站上申请的一个天气预报api(免费)。
还需要一个web页面来展示你获得的天气数据,因为我这个设计是我们的课程设计。所以我刚开始打算写一个精致的web页面来展示数据,打算模仿一个墨迹天气HTML;但由于自己是真的事务繁忙,直到课程设计结束的最后三天才开始写代码,后面发现弄这个web页面也是真的有点慢(我不擅长web),所以只好弄一个超级简易的页面来随便展示一下了,毕竟这个课程设计的重点并不是web。
在写代码之前我们必须明白我们所写的flask程序文件名不能是flask(不能同名);还有我们需要新建一个templates文件夹来放我们的HTML文件,新建一个static文件夹存放我们的所用到的图片。
在这里插入图片描述

4.实验开始

这里我以龙岩市为例。
首先我们要知道通过api调用查询出来的数据是json格式的,由于python是很久之前学的了忘记有没有什么方法可以快速的解析json来获得我们所需要的数据了,所以我选择了最笨的方法来解析,通过type()来分析数据是数组还是字典来解析,有更好的方法的小伙伴还是建议你去选择你的好方法来解析,我这个思路又笨又慢,哈哈哈自嘲一波。

from flask import Flask,render_template
import requests
import json
app = Flask(__name__)

@app.route("/")
def weather():
    resp = requests.get('http://apis.juhe.cn/simpleWeather/query?city=%E9%BE%99%E5%B2%A9&key=d2ad9e828a94e6c3d075aecac75fb82e')
    str = resp.json()
    str1 = json.dumps(str)
    data=json.loads(str1)
	return render_template("demo2.html", temperature=temperature)

if __name__ == '__main__':
    app.run()

然后在浏览器查看web页面:
在这里插入图片描述

5.结尾调试

我在宿主机上调试好之后打包发送到我的树莓派镜像里,因为树莓派里面自带python所以不必再安装python,但值得注意的是树莓派里的python还没有安装flask库,所以还要在树莓派python里面安装一次flask。

  • ***在树莓派运行之后是正常的,但我们还没有结束。
  • 发现:树莓派里面运行flask之后也只能在树莓派系统里查看得到web页面,我们要做到树莓派里运行flask程序,宿主机(Windows)里也可以查看得到web页面。那这个如何实现呢?
  • 其实很简单:我们只需要在代码最后一行app.run()的括号里加上host=‘树莓派的ip’,port=5000就可以了。
  • 那如何查看树莓派的ip地址呢?——打开树莓派终端,输入ifconfig回车即可查看
  • 在这里插入图片描述
    将ip加入到代码里
if __name__ == '__main__':
    app.run(host='172.19.191.63',port=5000)

这时候我们在树莓派镜像里运行flask,我们在宿主机浏览器地址栏输入172.19.191.63就可以查看到web页面了!

以上代码并不全哦,我只是挑选了一部分代码来展示。
完整代码请点击此处下载

总结

以上就是我这次的实验设计大致内容,本人也是一名普通大学生,以上代码肯定还是有很多的纰漏,望大佬们轻喷o(╥﹏╥)o
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值