Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。
2016年9月3日对于大多数人来说是一个平凡的一天,但对于我来说却是一个永远都无法忘记的一天,因为这一天是我的婚礼。
当举办一场婚礼时,有许多事情需要我们考虑,比如,食物,装饰,鲜花,住宿,交通,娱乐项目以及婚礼举办的场所等等各种方面。同时,还有许多其它未知的事情。在这里,我唯一可以确定的就是,到时将会有许许多多随处可见的表单。当看着越来越多的条目时,我开始思考是否有一个更好的方式来解决这个问题?纯手工来整理这些项目实在是太低效了,是时候用技术来改善这一状况了!
不必惊讶,邀请人们来参加婚礼通常是昂贵的(超过380磅)。首先,你需要发一个婚礼日期的请柬以及有关婚礼具体安排的邀请函。而这通常是很慢的,因为你不得不通过邮寄的方式来发送。然后你需要随时查看人们是否收到了请柬以及是否能够来参加婚礼,这个可以用自动化的过程来实现,不是吗?最后,邀请函通常是一次性的而且很容易丢失和放错地方,而这些都是非常不环保的。
回到列表的话题上,我要收集的列表内容一般分成下面几个部分:
-
你想要邀请人的名单
-
回复你请柬人的名单
-
能够确定参加婚礼的人的名单
-
确定参加婚礼的人选择的食物列表
有个汇总的列表总是好的,因为列表实际上是预先定义好的要求和格式,这样很有助于自动化完成它们。
信息整理
不考虑年龄的话,每一个参加婚礼的人都有一个手机,而这意味着我可以用Twilio来解决这个问题。如果你想看这部分的代码,可以看这个网址:
https://github.com/SeekTom/Twilio/tree/master/Wedication
短信是我最好的选择,我可以快速高效发出大量的信息并且处理它们。在考虑软件架构与数据库时,我只想要一个容易分享的东西而不想浪费时间在视图显示上。尽管在python的表格管理gspread库上遇到了一些麻烦,但是最终还是能够使我读取和写入谷歌的电子表单。虽然这不是最快的选择,可是它足够灵活并且提供了一个易于访问和可读的输出。
在最初的回复中,我列出了下面的项目:
-
姓名
-
电话号码
-
确认状态
-
联系细节状态
-
短信数量(包括总共发出的和随后回复的)
当这些数据都收集完成之后,我用gspread遍历这个列表向每个有手机号码的客人发送邀请短信。
具体代码如下:
因为短信看起来有点单调,我用unicode加入了一些样式,最终接收到短信的人就像一个幸运的受邀者,效果如下;
接下来,我用Flask作为我的网页服务器,将指向/messages的链接创建一个简单的if语句来进行恢复(yes,no)
代码如下: