文章出處

在編程時,小挫折可能與大難題一樣令人痛苦。沒人希望在費勁心思之后,只是做到彈出消息窗口或是快速寫入數據庫。因此,程序員都會喜歡那些能夠快速處理這些問題,同時長遠來看也很健壯的解決方案。

下面這6個Python庫既可以快速解決眼前的棘手問題,同時也能夠作為大型項目的基礎。

Pyglet

Pylet logo

是什么Pyglet是一個純Python語言編寫的跨平臺框架,用于開發多媒體和窗口特效應用。

為什么需要它:從頭開發圖形界面應用所需要的功能模塊是十分繁瑣的,Pyglet提供了大量現成的模塊,省去了很多的時間:窗口函數,OpenGL特效,音頻與視頻回放,鍵鼠處理以及圖片處理。(不過,Pyglet并沒有提供類似按鈕、工具欄或菜單等UI部件。)

所有上述模塊都是在Windows、OS X或Linux平臺下原生實現的,并不依賴外部二進制包;它是純Python語言編寫的。Pyglet通過BSD協議發布,可以用于任何商業和開源項目。

Peewee

peewee logo

是什么Peewee是一個小型但是十分強大的庫,支持通過ORM的方式訪問數據庫,原生支持SQLite、MySQL和PostgreSQL等數據庫。

為什么需要它: 任何一個需要經常使用外部數據的應用基本都會用到數據庫,但是通過臨時連接從數據庫中讀寫數據會帶來很多麻煩。

Peewee提供了一條訪問數據庫資源的安全、穩定的通道。對于Python程序員和數據庫工程師來說,該庫所提供的Python類使用起來將會得 心應手。有了Peewee的支持,我們可以快速便捷地訪問數據庫,后續還可以擴展加入更多的選項,不需要重新設計。Peewee同時原生支持數據庫事務 (transaction),并有許多可選的額外模塊,提供了從數據庫連接池(connection pooling)到類似多對多(many-to-many)的高級field類型等功能。

Bottle

bottlepy logo

是什么Bottle是一個小型的輕量網絡開發框架,同時速度也很快。

為什么需要它: 如果你只是想快速創建一個Restful API接口,或者只想用網絡開發框架的做一個簡單的應用,Bottle可以輕松地滿足你的要求。它具備了你將需要的所有功能:路由、模板、訪問請求與響應 數據(request and response data)、支持多種網絡服務器以及WebSockets等高級功能。

創建一個應用所需的工作極少,而且Bottle在設計時就考慮了可擴展性,如果需要更多高級功能,隨時就可以接入。

Invoke

是什么:簡單來說,Invoke 讓你通過一個Python庫便捷地執行系統管理任務。

為什么需要它: 誰不想要一個“可以運行shell命令、定義并歸類執行任務的簡潔、高級接口”呢?利用Python替代一般的shell腳本,并執行相應的任務,是完全 合理的。Invoke提供了執行常見命令行任務并進行管理的解決方案。對于Invoke來說,每個管理任務就像是Python函數一樣,可以在此基礎上優 雅地設計更為復雜的任務。

需要注意的是,Invoke當前仍是預覽版;如果你想使用穩定的工具(即使是不再積極開發),可以考慮Invoke的前身——Fabric

Splinter

是什么Splinter是一個自動化測試網絡應用的Python庫。

為什么需要它: 大家都知道,沒有什么比自動化網絡應用測試更無聊的事了。有了Splinter,就可以將打開瀏覽器、輸入URL、填寫表單、點擊按鈕等全部操作自動化。

特定的瀏覽器需要使用相應的驅動器(drivers),不過還好已經自帶了Chrome和Firefox驅動器。另外,Splinter還可以通過Selenium Remote來遠程控制其他機器上的瀏覽器。你甚至可以在目標瀏覽器中手動執行JavaScript代碼。

如果你想知道某個瀏覽器在瀏覽指定網站時的具體情況,那么Splinter將是一個很有用的工具。如果想了解不依賴瀏覽器與網站進行交互,可以查看Twill。(譯者:Twill是一種腳本語言,支持用戶通過命令行瀏覽網絡。)

Arrow

是什么Arrow這個庫可以更好地處理Python中的日期和時間(data/time)。

為什么需要它: 處理時區、日期轉換、應對不同的日期格式以及其他日期相關的東西,足夠讓你頭疼一天半的。如果使用Python自帶標準庫中的模塊,那么估計你得頭疼兩天了。

改用Arrow庫的話有四大好處,不管長期還是短期都是很有用的。第一,它可以完美替代Python中的datetime模塊,這意味著你仍可以使用類似.now().utcnow()這些常見的函數調用形式。第二,它提供了滿足轉換時區等常見需求的方法。第三,它提供了“人性化”的日期/時間信息——也就是,它可以很輕松地告訴你某件事是在“一小時以前”發生的,或是“將在兩小時后”發生。第四,它很容易地將日期/時間信息轉換為當地時間。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()