你心中理想的婚礼什么样?别担心!python帮你完成你的浪漫之旅!

2017年9月3日,对世界上的大多数人来说,或许就只是普普通通的一天,但对我而言,将会是一个难忘的日子,因为在那一天,我结婚了。

在规划婚礼时,要考虑许多不同的方面。食物、装饰、桌子装置(啊,是哒,这独立于装饰)、鲜花、住宿、交通、娱乐和位置。虽然在规划婚礼时有许许多多未知数,但是我可以肯定一件事。在婚礼中,有大量的名单、嵌套的名单、以及更多的远到目光可见的名单。当我瞪着越来越多的项目时,我开始怀疑,是否有更好的方法来处理?这一切都如此的手动,充满了低效。必须有一些技术可以改进的方面。

你可能会感到惊讶,但是邀请人们参加婚礼是昂贵的(超过380磅),因为你需要发送“按时出席”卡片以及随后的关于婚礼细节的邀请。这也是缓慢的,因为你必须通过邮寄来发送它们。追踪人们是否接收到邀请,以及他们是否想要来参加提供免费食物和饮料的派对,是非常耗时的,当然,一个自动的好的?最后,邀请卡不是环境友好的,因为它们被一次性使用,并且容易丢失或错放。

回到名单。客人名单分成几个部分:

但是名单是好的。它们有预先定义好的要求和响应,这让它们是自动化的重要选择。

瓶中信

无关年龄,我确信婚礼名单上每个人都有手机,这意味着该是Twilio上场的时候了。如果你想要跳到代码,那么你可以看看GitHub上的repo。

SMS对我的需求而言相当完美。我可以配置发出的群发短信,并且快速有效地处理回应。在绘制一个MVP并且考虑数据库的时候,我想要某些易于分享的东西,并且不想要浪费时间来构建视图。偶然发现的gspread python库使得我能够读写谷歌电子表格。虽然这不是最快的选择,但它确实足够灵活,并且提供了一个易于访问和可读的输出。

对于初始的R.S.V.P,我创建了一个电子表格,包含这些列:

主要数据输入完成后,我使用gspread来遍历列表,并且发送短信给每一个具有与之相关联的手机号码的客人:Sheets.py

因为短信可以看起来很简单,所以我添加了一些unicode来让它们有趣些。下面是幸运的受邀者接收到的短信样式:

接下来,我使用Flask作为我的web服务器,然后设置我的Twilio消息请求URL指向/messages url,并创建简单的if语句来解析回复 (yes, no):hello_guest.py

第一条消息是在2月19日早上8:37的时候发送的,而在3分钟后,也就是早上8:40收到了第一条回复。到了早上9:38,我收到了23条确认回复,这可是32%的接受率!初始群发短信2天后,我们收到了58%的客人的确认!尽管取得了明显的成功,但是我的未婚妻并不热衷于我那作为婚礼邀请服务(SAAWIS?)的短信,因此,我决定添加一些功能到我的应用中。

统计!我可以计算现场出席名单并按要求退回,给新娘即使反馈客人名单的成型。代码很简单,因为我已经在电子表格中设置了一些基本的计数器,因此,仅仅是抓取这些单元格的内容,并将其添加到短信中的事:hello_guest.py

以下是最终的短信:

不是很漂亮,但很有用。

Lauren现在可以跟踪出席率,这件事大大缓解了她的压力。从那时起,万事俱备,并且短信被尽可能集成到婚礼的方方面面。有些是显而易见的,例如当婚礼网站 (自然,由Heroku提供动力) 上线的时候发送通知短信,分享礼物列表以及其他我至今仍然感到骄傲的事。

食物,极好的食物

在建立R.S.V.P名单后,经常被推迟的是让客人确认他们的食物选择。你会惊讶于让人们选择免费的食物是多么的困难。第一步是发送另一条短信,告诉那些确认参与的客人访问网站,并通过一个谷歌表单选择他们的食物选项。相当标准的东西,然而,表单被设置为填充与参与者相同的工作簿。这意味着,现在,我有了已确认参与的客人以及那些填写了食物选择表格的客人表单。通常,我会等待客人慢慢选择他们的饭菜,但由于我的婚礼由Twilio驱动,意味着我可以用最少的努力来跟踪。

数据需要匹配访客名称上的两个电子表格,并且在有匹配的时候更新客人的食物选择状态。这需要一些额外的工作,但一旦重排代码,我就可以按需批量运行脚本,并最后通过短信获取我的客人的最新状态:food.py

现在,有了一个确认的客人名单和越来越多的食物选择名单,通过主要应用将这些统计数据公开是有意义的。所需的只是抓取相关单元格的内容,然后用短信回复:Hello_guest.py

让婚礼餐饮者了解我们的进展,并提供谁没有选择的可操作数据,是非常方便的。追踪客人是另一个自动化选择。简单遍历参加者名单,找到没有选择用餐选项的调皮的客人,然后给他们发送信息!Chase.py

大日子比我们所想的来得更快些。而唯一需要做的事就是发送最后一条短信,提醒客人基本的细节,以及提醒他们带把伞,以防碰上一般的英国夏季的雨季:

总结一下

婚礼永远不是个简单的事,它会让你感觉到很多事都不在你掌控之下。自动化通过提供与我们的客人的直接渠道,以及无数的我可以跟踪、推动以及戳他们回应的不同方式,显然让我的生活更轻松了。它帮助我们在婚礼臭名昭着的时间消耗方面变得积极主动,让我们可以空出来关注大日子的其他重要领域。

为复杂问题建立可扩展的解决方案从来不是件简单的事,即使在其最终形式下,我的应用有时也是很脆弱的。我已经计划建立一个更加完整的解决方案,带有进度的数据可视化、语音基础并更少依赖于CLI脚本,但是时间更重要些。总的来说,我很高兴它的工作方式。没有通讯系统是完美的。你需要实现最适合你的受众的渠道,无论是短信,语音,聊天,视频,还是信号量。

Python可以做什么?

web开发和 爬虫是比较适合 零基础的

自动化运维 运维开发 和 自动化测试 是适合 已经在做运维和测试的人员

大数据 数据分析 这方面 是很需要专业的 专业性相对而言比较强

科学计算 一般都是科研人员 在用

机器学习 和 人工智能 首先 学历 要求高 其次 高数要求高 难度很大

我有一个微信公众号,经常会分享一些python技术相关的干货;如果你喜欢我的分享,可以用微信搜索“python语言学习”关注

欢迎大家加入千人交流答疑裙:699+749+852

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

爱看书的你,一定会喜欢这款小程序

即便一个月只能读完一本书,日积月累后,当你把读过的书放满整个书架的时候,一定会非常享受这份喜悦。

571
来自专栏大宽宽的碎碎念

如何积累知识和技能答网友-如何积累知识和技能一个故事凡事都有目标形象化关联不断的学,灵动的用结论

36413
来自专栏钱塘大数据

关于爬虫与反爬虫,这些“套路”你必须知道

爬虫与反爬虫,是一个很不阳光的行业。这里说的不阳光,有两个含义。 第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚至...

4834
来自专栏BestSDK

4个核心要点揭开爬虫真面目,小心被反爬!

爬虫与反爬虫,是一个很不阳光的行业。   这里说的不阳光,有两个含义。   第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会...

4625
来自专栏web前端教室

前端工程师的未来亮点在哪

前端开发这个职业,在目前以我老旧的工作经验来看,虽然有些百花齐放的姿势,但根上依然是JS(ES5\6)、CSS(2\3)、HTML(4\5)。看的再聚集一点,依...

2196
来自专栏携程技术中心

干货 | 那些你不知道的爬虫反爬虫套路

作者简介 崔广宇,携程酒店研发部开发经理,与去哪儿艺龙的反爬虫同事是好基友。携程技术中心“非著名”段子手。 前言 爬虫与反爬虫,是一个很不阳光的行业。 这里说的...

3286
来自专栏Python专栏

一次错爱的面试---爱奇艺运开

1406
来自专栏PPV课数据科学社区

爬虫需谨慎!!!那些你不知道的爬虫反爬虫套路

作者简介 崔广宇,携程酒店研发部开发经理,与去哪儿艺龙的反爬虫同事是好基友。携程技术中心“非著名”段子手。 本文来自携程技术中心(ID:ctriptech) 前...

3804
来自专栏灯塔大数据

探秘|那些你不知道的爬虫反爬虫套路

相爱相杀的爬虫与反爬虫 ? 前言 爬虫与反爬虫,是一个很不阳光的行业。 这里说的不阳光,有两个含义。 第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很...

4569
来自专栏机器人网

干货:高水平自动化工程师的成长进阶之路

写在前面:进阶没有绝招,但好学和热爱绝对是必杀技。 【能力特点】 1、能用计算机进行PLC控制编程与调试。 2、能用计算机进行CAD电气原理图纸的绘制。 3、...

39111

扫码关注云+社区

领取腾讯云代金券