天气推送服务器

来源:互联网 发布:中科院自动化所 知乎 编辑:程序博客网 时间:2024/05/22 01:58

1、主要功能
用户通过天气推送服务器暴露出来的接口进行注册,注册完毕之后用户可以添加一些自己的亲朋好友的信息。每天定时爬取全国的天气,然后推送给用户的亲朋好友。
这里写图片描述

2、服务器
服务器使用的是一个协程版本的web服务器,支持get和post方法,底层用CGI方法处理带参数的请求。服务器对外暴露两个接口,用来进行注册和登录。
要登录的话,必须要有一个账号和密码,可以通过注册的接口进行注册,注册的信息会存到数据库中的login表中。登录成功之后会进入该用户的主页,该用户可以在自己的主页之中添加自己的亲朋好友的信息,这些添加的信息会存到数据库中的msg表中,服务器后台程序会定时向该用户的亲朋好友推送天气信息。
http服务器参考

3、爬虫爬取全国天气
使用scrapy框架,爬取全国的天气,将爬取的结果直接存入到数据库中的weather表中。
Scrapy框架参考

4、数据库中的表的结构
4.1、存放登录信息
存放用户信息的表的格式如下,我们以用户的tel信息作为键值,保证每个用户的信息都不会出现重复。tel可以被用来在msg表里面查找该用户的朋友的信息。
这里写图片描述

4.2、存放用户的朋友
msg表存用户的亲朋好友的信息,其中tel是该用户的电话号码,剩下的信息是该用户的朋友的信息,其中最重要的两列是city和value,city将来要被用来在weather表里面查找天气,value记录的是邮箱或者电话被用于推送信息。
这里写图片描述

4.3、存放天气信息
weather表用于存储全国的天气信息。
这里写图片描述

5、天气推送
5.1、天气怎么来???
由于天气具有实时性,所以我们必须每天都要进行更新,为此我们可以设置定时任务,每天定时去启动爬虫控制脚本,爬取全国天气信息。
5.2、推送给谁???
我们的天气要推送给msg这张表里面的所有人,用msg表里面的city字段的值到weather这张表里面找对应城市的天气,然后用邮件或短信发送。
5.3、如何发送邮件或短信
在本文中,我们以发送邮件为例。我们可以先将msg表中的信息拿到,然后去weather里面找对应城市的天气,找到之后创建一个子进程去启动一个脚本发送邮件。整个过程我们可以设置定时任务完成。

6、结果展示
6.1、启动服务器,
这里写图片描述

6.2、登录/注册界面
这里写图片描述

6.3、输入账号和密码登录
这里写图片描述

6.4、进入到主页,主页中有”我的关系”的按钮
这里写图片描述

6.5、进入我的关系页面,可以在这个页面中增删查改该用户的朋友关系
这里写图片描述

6.6、查看该用户的关系
这里写图片描述

6.7、显示该用户的所有朋友信息
这里写图片描述

7、项目源码
项目源码

2 0
原创粉丝点击