1. 程式人生 > >你心中理想的婚禮什麽樣?別擔心!python幫你完成你的浪漫之旅!

你心中理想的婚禮什麽樣?別擔心!python幫你完成你的浪漫之旅!

python 爬蟲 web 科技 編程

技術分享圖片

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


你心中理想的婚禮什麽樣?別擔心!python幫你完成你的浪漫之旅!