Python程序員都會喜歡的6個庫

  在編程時,小挫折可能與大難題同樣使人痛苦。沒人但願在費勁心思以後,只是作到彈出消息窗口或是快速寫入數據庫。所以,程序員都會喜歡那些可以快速處理這些問題,同時長遠來看也很健壯的解決方案。git

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

 Pyglet

Pylet logo

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

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

  全部上述模塊都是在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()這些常見的函數調用形式。第二,它提供了知足轉換時區等常見需求的方法。第三,它提供了「人性化」的日期/時間信息——也就是,它能夠很輕鬆地告訴你某件事是在「一小時之前」發生的,或是「將在兩小時後」發生。第四,它很容易地將日期/時間信息轉換爲當地時間。

 

 


        長按二維碼識別關注,您的支持是咱們最大的動力。       

        公衆號:測試夢工廠

        QQ一羣:300897805

  

相關文章
相關標籤/搜索