每天户外运动,想有个能自动查询天气的方式,然而单位地方比较偏,周边没有能每天更新气象的地方,最近的有天气预报的地方也是三十多公里外的城区了。那就DIY一个呗。 某宝上找了找有各种模块,最近又学习了python,很快就有了思路。先做个硬件定时采集气象数据发送到服务端,服务端收到数据记录下以供查找中。结合微信的公众号接口,响应公众号查询请求。 服务端 微信订阅号对服务器端有约束,必须是80端口,收发均封装成XML格式,微信官网提供了xml解析封装的示例代码,直接使用就可以。 服务器端由python搭建,引用web模块监听80端口,同时服务端监听另一个端口,气象采集端将采集到的气象数据发送至该端口,服务端接收后按格式处理好并记录。 用户在订阅号后台发送消息后,微信服务器会封装成xml消息转发至python服务端,服务端对80端口传入的xml请求解析并获取请求用户等信息,并提取最近一次采集到的气象数据,根据请求封装成规定的xml格式返回微信后台,由微信后台发送至用户端。 除天气查询外的其他功能都是通过python服务端直接处理并响应。
整个下来涉及的程序并不多也不难,只是作为初学python的练手 , 顺便实现了点小功能方便生活,所以里面还有很多不完善的地方,距离实用还有些距离,比如性能、容错性、可用性、安全性等等。仅供大家参考。
|