在 Python/Django 的世界里有這樣一個諺語:為語言而來扳炬,為社區(qū)而留瀑凝。對絕大多數(shù)人來說的確是這樣的麻养,但是,還有一件事情使得我們一直停留在 Python 的世界里罩锐,不愿離開奉狈,那就是我們可以很容易地利用一頓午餐或晚上幾個小時的時間卤唉,把一個想法快速地實現(xiàn)出來涩惑。
這個月,我們來探討一些我們喜歡用來快速完成業(yè)余項目side projects或打發(fā)午餐時間的 Python 庫桑驱。
在數(shù)據(jù)庫中即時保存數(shù)據(jù):Dataset
當我們想要在不知道最終數(shù)據(jù)庫表長什么樣的情況下竭恬,快速收集數(shù)據(jù)并保存到數(shù)據(jù)庫中的時候,Dataset 庫將是我們的最佳選擇熬的。Dataset 庫有一個簡單但功能強大的 API痊硕,因此我們可以很容易的把數(shù)據(jù)保存下來,之后再進行整理押框。
Dataset 建立在 SQLAlchemy 之上岔绸,所以如果需要對它進行擴展,你會感到非常熟悉橡伞。使用 Django 內建的 inspectdb 管理命令可以很容易地把底層數(shù)據(jù)庫模型導入 Django 中盒揉,這使得和現(xiàn)有數(shù)據(jù)庫一同工作不會出現(xiàn)任何障礙。
從網(wǎng)頁抓取數(shù)據(jù):Beautiful Soup
Beautiful Soup(一般寫作 BS4)庫使得從 HTML 網(wǎng)頁中提取信息變得非常簡單兑徘。當我們需要把非結構化或弱結構化的 HTML 轉換為結構化數(shù)據(jù)的時候刚盈,就需要使用 Beautiful Soup 。用它來處理 XML 數(shù)據(jù)也是一個很好的選擇挂脑,否則 XML 的可讀性或許會很差藕漱。
和 HTTP 內容打交道:Requests
當需要和 HTTP 內容打交道的時候,Requests 毫無疑問是最好的標準庫崭闲。當我們想要抓取 HTML 網(wǎng)頁或連接 API 的時候肋联,都離不開 Requests 庫。同時刁俭,它也有很好的文檔牺蹄。
編寫命令行工具:Click
當需要寫一個簡單的 Python 腳本作為命令行工具的時候,Click 是我最喜歡用的庫薄翅。它的 API 非常直觀沙兰,并且在實現(xiàn)時經過了深思熟慮氓奈,我們只需要記住很少的幾個模式。它的文檔也很優(yōu)秀鼎天,這使得學習其高級特性更加容易舀奶。
對事物命名:Python Slugify
眾所周知,命名是一件困難的事情斋射。Python Slugify 是一個非常有用的庫育勺,它可以把一個標題或描述轉成一個帶有特性的唯一標識符。如果你正在做一個 Web 項目罗岖,并且你想要使用對搜索引擎優(yōu)化友好SEO-friendly的鏈接涧至,那么,使用 Python Slugify 可以讓這件事變得很容易桑包。
和插件打交道:Pluggy
Pluggy 庫相對較新南蓬,但是如果你想添加一個插件系統(tǒng)到現(xiàn)有應用中,那么使用 Pluggy 是最好也是最簡單的方式哑了。如果你使用過 pytest赘方,那么實際上相當于已經使用過 Pluggy 了,雖然你還不知道它弱左。
把 CSV 文件轉換到 API 中:DataSette
DataSette 是一個神奇的工具窄陡,它可以很容易地把 CSV 文件轉換為全特性的只讀 REST JSON API,同時拆火,不要把它和 Dataset 庫混淆跳夭。Datasette 有許多特性,包括創(chuàng)建圖表和 geo(用于創(chuàng)建交互式地圖)们镜,并且很容易通過容器或第三方網(wǎng)絡主機進行部署币叹。
處理環(huán)境變量等:Envparse
如果你不想在源代碼中保存 API 密鑰、數(shù)據(jù)庫憑證或其他敏感信息憎账,那么你便需要解析環(huán)境變量套硼,這時候 envparse 是最好的選擇。Envparse 能夠處理環(huán)境變量胞皱、ENV 文件邪意、變量類型,甚至還可以進行預處理和后處理(例如反砌,你想要確保變量名總是大寫或小寫的)雾鬼。
有什么你最喜歡的用于業(yè)余項目的 Python 庫不在這個列表中嗎?請在評論中和我們分享宴树。