轉(zhuǎn)帖|行業(yè)資訊|編輯:郝浩|2016-08-25 15:05:17.000|閱讀 211 次
概述:在編程時(shí),小挫折可能與大難題一樣令人痛苦。沒人希望在費(fèi)勁心思之后,只是做到彈出消息窗口或是快速寫入數(shù)據(jù)庫。因此,程序員都會喜歡那些能夠快速處理這些問題,同時(shí)長遠(yuǎn)來看也很健壯的解決方案。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在編程時(shí),小挫折可能與大難題一樣令人痛苦。沒人希望在費(fèi)勁心思之后,只是做到彈出消息窗口或是快速寫入數(shù)據(jù)庫。因此,程序員都會喜歡那些能夠快速處理這些問題,同時(shí)長遠(yuǎn)來看也很健壯的解決方案。
下面這6個(gè)Python庫既可以快速解決眼前的棘手問題,同時(shí)也能夠作為大型項(xiàng)目的基礎(chǔ)。
Pyglet是一個(gè)純Python語言編寫的跨平臺框架,用于開發(fā)多媒體和窗口特效應(yīng)用。
從頭開發(fā)圖形界面應(yīng)用所需要的功能模塊是十分繁瑣的,Pyglet提供了大量現(xiàn)成的模塊,省去了很多的時(shí)間:窗口函數(shù),OpenGL特效,音頻與視頻回放,鍵鼠處理以及圖片處理。(不過,Pyglet并沒有提供類似按鈕、工具欄或菜單等UI部件。)
所有上述模塊都是在Windows、OS X或Linux平臺下原生實(shí)現(xiàn)的,并不依賴外部二進(jìn)制包;它是純Python語言編寫的。Pyglet通過BSD協(xié)議發(fā)布,可以用于任何商業(yè)和開源項(xiàng)目。
Peewee是一個(gè)小型但是十分強(qiáng)大的庫,支持通過ORM的方式訪問數(shù)據(jù)庫,原生支持SQLite、MySQL和PostgreSQL等數(shù)據(jù)庫。
任何一個(gè)需要經(jīng)常使用外部數(shù)據(jù)的應(yīng)用基本都會用到數(shù)據(jù)庫,但是通過臨時(shí)連接從數(shù)據(jù)庫中讀寫數(shù)據(jù)會帶來很多麻煩。
Peewee提供了一條訪問數(shù)據(jù)庫資源的安全、穩(wěn)定的通道。對于Python程序員和數(shù)據(jù)庫工程師來說,該庫所提供的Python類使用起來將會得心應(yīng)手。有了Peewee的支持,我們可以快速便捷地訪問數(shù)據(jù)庫,后續(xù)還可以擴(kuò)展加入更多的選項(xiàng),不需要重新設(shè)計(jì)。Peewee同時(shí)原生支持?jǐn)?shù)據(jù)庫事務(wù)(transaction),并有許多可選的額外模塊,提供了從數(shù)據(jù)庫連接池(connection pooling)到類似多對多(many-to-many)的高級field類型等功能。
Bottle是一個(gè)小型的輕量網(wǎng)絡(luò)開發(fā)框架,同時(shí)速度也很快。
如果你只是想快速創(chuàng)建一個(gè)Restful API接口,或者只想用網(wǎng)絡(luò)開發(fā)框架的做一個(gè)簡單的應(yīng)用,Bottle可以輕松地滿足你的要求。它具備了你將需要的所有功能:路由、模板、訪問請求與響應(yīng) 數(shù)據(jù)(request and response data)、支持多種網(wǎng)絡(luò)服務(wù)器以及WebSockets等高級功能。
創(chuàng)建一個(gè)應(yīng)用所需的工作極少,而且Bottle在設(shè)計(jì)時(shí)就考慮了可擴(kuò)展性,如果需要更多高級功能,隨時(shí)就可以接入。
簡單來說,讓你通過一個(gè)Python庫便捷地執(zhí)行系統(tǒng)管理任務(wù)。
誰不想要一個(gè)“可以運(yùn)行shell命令、定義并歸類執(zhí)行任務(wù)的簡潔、高級接口”呢?利用Python替代一般的shell腳本,并執(zhí)行相應(yīng)的任務(wù),是完全合理的。Invoke提供了執(zhí)行常見命令行任務(wù)并進(jìn)行管理的解決方案。對于Invoke來說,每個(gè)管理任務(wù)就像是Python函數(shù)一樣,可以在此基礎(chǔ)上優(yōu)雅地設(shè)計(jì)更為復(fù)雜的任務(wù)。
需要注意的是,Invoke當(dāng)前仍是預(yù)覽版;如果你想使用穩(wěn)定的工具(即使是不再積極開發(fā)),可以考慮Invoke的前身——Fabric。
Splinter是一個(gè)自動化測試網(wǎng)絡(luò)應(yīng)用的Python庫。
大家都知道,沒有什么比自動化網(wǎng)絡(luò)應(yīng)用測試更無聊的事了。有了Splinter,就可以將打開瀏覽器、輸入U(xiǎn)RL、填寫表單、點(diǎn)擊按鈕等全部操作自動化。
特定的瀏覽器需要使用相應(yīng)的驅(qū)動器(drivers),不過還好已經(jīng)自帶了Chrome和Firefox驅(qū)動器。另外,Splinter還可以通過Selenium Remote來遠(yuǎn)程控制其他機(jī)器上的瀏覽器。你甚至可以在目標(biāo)瀏覽器中手動執(zhí)行JavaScript代碼。
如果你想知道某個(gè)瀏覽器在瀏覽指定網(wǎng)站時(shí)的具體情況,那么Splinter將是一個(gè)很有用的工具。如果想了解不依賴瀏覽器與網(wǎng)站進(jìn)行交互,可以查看。(譯者:Twill是一種腳本語言,支持用戶通過命令行瀏覽網(wǎng)絡(luò)。)
Arrow這個(gè)庫可以更好地處理Python中的日期和時(shí)間(data/time)。
處理時(shí)區(qū)、日期轉(zhuǎn)換、應(yīng)對不同的日期格式以及其他日期相關(guān)的東西,足夠讓你頭疼一天半的。如果使用Python自帶標(biāo)準(zhǔn)庫中的模塊,那么估計(jì)你得頭疼兩天了。
改用Arrow庫的話有四大好處,不管長期還是短期都是很有用的。第一,它可以完美替代Python中的datetime模塊,這意味著你仍可以使用類似.now()和.utcnow()這些常見的函數(shù)調(diào)用形式。
第二,它提供了滿足轉(zhuǎn)換時(shí)區(qū)等常見需求的方法。第三,它提供了“人性化”的日期/時(shí)間信息——也就是,它可以很輕松地告訴你某件事是在“一小時(shí)以前”發(fā)生的,或是“將在兩小時(shí)后”發(fā)生。第四,它很容易地將日期/時(shí)間信息轉(zhuǎn)換為當(dāng)?shù)貢r(shí)間。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn