我在一本技術書裏放置的十個彩蛋

Flask Web 開發實戰》已經出版一年多,書裏面的一些彩蛋也不知道有多少被人發現了。再不公開,我可能都要忘了。因此就趁着出版一週年這個契機整理一下吧。數據庫

這些彩蛋大都是關於電影的一些雙關和文字遊戲,有一些說是彩蛋可能會有些勉強。比較正式的一共有 10 個,分別對應十部電影。也就是第三章介紹模板引擎時的實例程序電影清單裏列出來的十部電影。flask

下面按照出現順序一一劇透。安全

阿甘正傳(Forrest Gump)

P14 第一章:初識 Flask 1.3app

這一節介紹運行 Flask,章節標題是「Run, Flask, Run!」。svg

阿甘正傳裏,當阿甘被欺負的時候,珍妮總會喊「Run, Forrest, Run!」。函數

紅白藍三部曲(Three Colours trilogy)

P36 第二章:Flask 和 HTTP 2.2.3.3網站

介紹 URL 規則的 any 轉換器時使用的示例以下:spa

@app.route('/colors/<any(blue, white, red):color>')
def three_colors(color):
    return '<p>Love is patient and kind. Love is not jealous or boastful or proud or rude.</p>'複製代碼

這個並無什麼特殊含義,就是列了三個顏色做爲 URL 選項,返回的都是聖經裏的那句話。3d

電影清單

P76 第三章:模板rest

第三章在示例程序裏的填充數據是整本書全部彩蛋相關的十部電影,做爲一個足夠顯眼的線索。

movies = [
    {'name': 'My Neighbor Totoro', 'year': '1988'},
    {'name': 'Three Colours trilogy', 'year': '1993'},
    {'name': 'Forrest Gump', 'year': '1994'},
    {'name': 'Perfect Blue', 'year': '1997'},
    {'name': 'The Matrix', 'year': '1999'},
    {'name': 'Memento', 'year': '2000'},
    {'name': 'The Bucket list', 'year': '2007'},
    {'name': 'Black Swan', 'year': '2010'},
    {'name': 'Gone Girl', 'year': '2014'},
    {'name': 'CoCo', 'year': '2017'},
]複製代碼

另外這個電影清單也有現實版:IMDb鏡像豆列

尋夢環遊記(CoCo)

P105 第四章:模板

這一章一開始給出了一個 HTML 登陸表單的示例,示例代碼和渲染後的畫面(圖 4-1)中,用戶名輸入框的佔位文字是 Héctor Rivera,密碼輸入框的佔位文字是 19001130,勾選了記住登陸狀態的「記住我(Remember me)」選項。

Héctor Rivera 是電影裏小男孩在亡靈世界裏遇到的死去的爸爸,他的生日是 1900 年 11 月 30 日,勾選了「Remember me」,他就會被人記住,因此就不會消失了……

消失的愛人(Gone Girl)

P139 第五章:數據庫

第一小節介紹關係型數據庫的時候給出了一個示例表格(表 5-1),以下:

這兩條數據分別對應《消失的愛人》裏的男女主角。

記憶碎片(Memento)

一樣在第五章,這一章寫了一個用來記筆記的示例程序,分別使用了三條筆記內容做爲示例演示 CRUD 操做,即:

這三條筆記均是《記憶碎片》裏男主角記在各處的筆記。

中國發出的第一封電子郵件

P178 第六章:電子郵件

第六章介紹電子郵件使用的示例郵件正文是「Across the Great Wall we can reach every corner in the world.」。這是 1987 年從中國發出的第一封電子郵件正文。

原本是想把 Wall 換成另外一個單詞以便反映現狀的,可是出於安全考慮,沒那麼作。不過這句話原版如今來看已是夠諷刺的了。

黑客帝國(The Matrix)

P246 第八章:我的博客

介紹自定義 flash 消息樣式的時候,給出了下面的自定義 CSS 類示例:

.alert-matrix {
    color: #66ff66;
    background-color: #000000;
    border-color: #ebccd1; /* 這一行好像沒用 */
}複製代碼

調用示例以下:

flash('Knock, knock, Neo.', 'matrix')複製代碼

實際的顯示效果以下所示:

模擬了電影原圖:

《未麻的部屋》(Perfect Blue)和《黑天鵝》(Black Swan)

P236 第八章:我的博客

這一章的示例博客名字叫作 Bluelog,模仿了《未麻的部屋》裏記錄未麻生活的網站,初始化帳戶的信息以下:

def fake_admin():
    admin = Admin(
        username='admin',
        blog_title='Bluelog',
        blog_sub_title="No, I'm the real thing.",
        name='Mima Kirigoe',
        about='Um, l, Mima Kirigoe, had a fun time as a member of CHAM...'
    )
    ...複製代碼

另外介紹博客的主題地方提供了藍色和黑色兩個主題,主題名分別是「Perfect Blue」和「Black Swan」,對應《未麻的部屋》和《黑天鵝》兩部電影的英文名(後者致敬了前者)。

龍貓(My Neighbor Totoro)

P260 第八章:我的博客

這個算不上彩蛋……在介紹生成英文標題 slug 的 slugify 函數的時候,實際調用的示例使用了龍貓的幾種名字做爲輸入數據:

>>> slugify(u'My Neighbor Totoro')
u'my-neighbor-totoro'
>>> slugify(u'鄰家的豆豆龍')
u'lin-jia-de-dou-dou-long'
>>> slugify(u'となりのトトロ')
u'tonarinototoro'複製代碼

遺願清單(The Bucket List)

P421 第十章:待辦事項程序

這個彩蛋是刻意加的,由於這一章的示例程序是一個 Todo List 程序,因此要找一個和清單相關的電影。示例程序裏的幾條待辦事項就是電影裏的一些遺願。當時還沒看過這個電影,特地去看了一遍,感受通常。

應該就這些了,若是還有其餘的,歡迎補充。

那麼放置這些彩蛋的目的是?沒目的……僅僅就是爲了好玩。同時爲了能讓發現彩蛋的人也會以爲好玩。

相關文章
相關標籤/搜索