Python程式設計師都會喜歡的6個庫
在程式設計時,小挫折可能與大難題一樣令人痛苦。沒人希望在費勁心思之後,只是做到彈出訊息視窗或是快速寫入資料庫。因此,程式設計師都會喜歡那些能夠快速處理這些問題,同時長遠來看也很健壯的解決方案。
下面這6個Python庫既可以快速解決眼前的棘手問題,同時也能夠作為大型專案的基礎。
Pyglet
是什麼:Pyglet是一個純Python語言編寫的跨平臺框架,用於開發多媒體和視窗特效應用。
為什麼需要它:從頭開發圖形介面應用所需要的功能模組是十分繁瑣的,Pyglet提供了大量現成的模組,省去了很多的時間:視窗函式,OpenGL特效,音訊與視訊回放,鍵鼠處理以及圖片處理。(不過,Pyglet並沒有提供類似按鈕、工具欄或選單等UI部件。)
所有上述模組都是在Windows、OS X或Linux平臺下原生實現的,並不依賴外部二進位制包;它是純Python語言編寫的。Pyglet通過BSD協議釋出,可以用於任何商業和開源專案。
Peewee
是什麼:Peewee是一個小型但是十分強大的庫,支援通過ORM的方式訪問資料庫,原生支援SQLite、MySQL和PostgreSQL等資料庫。
為什麼需要它: 任何一個需要經常使用外部資料的應用基本都會用到資料庫,但是通過臨時連線從資料庫中讀寫資料會帶來很多麻煩。
Peewee提供了一條訪問資料庫資源的安全、穩定的通道。對於Python程式設計師和資料庫工程師來說,該庫所提供的Python類使用起來將會得心應手。有了Peewee的支援,我們可以快速便捷地訪問資料庫,後續還可以擴充套件加入更多的選項,不需要重新設計。Peewee同時原生支援資料庫事務(transaction),並有許多可選的額外模組,提供了從資料庫連線池(connection pooling)到類似多對多(many-to-many)的高階field型別等功能。
Bottle
是什麼: 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()這些常見的函式呼叫形式。第二,它提供了滿足轉換時區等常見需求的方法。第三,它提供了“人性化”的日期/時間資訊——也就是,它可以很輕鬆地告訴你某件事是在“一小時以前”發生的,或是“將在兩小時後”發生。第四,它很容易地將日期/時間資訊轉換為當地時間。
相關文章
- VsCode成為Python程式設計師最喜歡使用的IDEVSCodePython程式設計師IDE
- Java程式設計師不喜歡Golang的地方 - GavinJava程式設計師Golang
- 每個程式設計師都會的 35 個 jQuery 小技巧程式設計師jQuery
- 程式設計師最喜歡的五大神器程式設計師
- switch和if else if哪個效率高?為什麼很多IT程式設計師都喜歡用switch判斷?程式設計師
- 為什麼程式設計師喜歡在半夜寫程式碼?程式設計師
- 為什麼程式設計師會有最喜歡與最討厭的程式語言?(earthly)程式設計師
- 程式設計師為什麼喜歡在晚上編碼程式設計師
- 程式設計師喜歡Linux系統的原因是什麼?程式設計師Linux
- 會唱歌的程式設計師為何如此受歡迎?程式設計師
- 學Python的程式設計師,程式設計能力都“退化”成什麼樣了?Python程式設計師
- 不會填坑的程式設計師不是一個好程式設計師!程式設計師
- 月薪20k的web前端開發程式設計師,他們都會的這6招Web前端程式設計師
- 兩個程式設計師老友的會面程式設計師
- 幾個大神程式猿更喜歡用的Python編輯器!Python
- 那些學了 Python 的程式設計師,程式設計能力都“退化”成什麼樣了?Python程式設計師
- 每個程式設計師都該閱讀的10本書程式設計師
- 每個Python新手都應該知道的程式設計技巧Python程式設計
- 6個新手程式設計師程式設計必不可少的工具,你用過幾個?程式設計師
- 每個程式設計師都應該知道的下一個程式語言——Kotlin程式設計師Kotlin
- 面試一個6年 Java程式設計師,竟然問啥都不會!面試Java程式設計師
- 機器學習工程師會喜歡的5個Kubeflow 1.3新功能 - thenewstack機器學習工程師
- 每到一個階段,都會有一個最火的程式設計師職位,目前就是前端!程式設計師前端
- Java程式設計師都需要懂的「反射」Java程式設計師反射
- Java 程式設計師都該懂的 HashMapJava程式設計師HashMap
- 聽說Python在程式設計師裡很受歡迎,啥理由?Python程式設計師
- 好程式設計師Python培訓分享四款Python程式庫程式設計師Python
- 人人都能學會的python程式設計教程6:列表(list)Python程式設計
- 21個奇葩註釋,程式設計師看了都點贊程式設計師
- 分享6個Python程式設計非常實用的技巧!Python程式設計
- 來自100多個國家開發程式設計師票選了最喜歡的程式語言,來一探究竟!程式設計師
- python 程式設計師必備的五大常用庫Python程式設計師
- 程式設計師都幹些什麼?程式設計師
- 每個程式設計師都應該瞭解的硬體知識程式設計師
- 每個程式設計師都需要知道的概念和術語 - codeburst程式設計師
- 程式設計師生涯,學到最重要的6個教訓程式設計師
- 一個成熟的程式設計師必會技能:賺錢程式設計師
- 設計人員喜歡的照片效果PS濾鏡庫ON1 Effects 2021
- Java程式設計師應該知道的20個有用的庫Java程式設計師