你必須知道的10個Python第三庫
1. BeautifulSoup
Beautiful Soup是一個可以從HTML,XML進(jìn)行提取文件的Python庫,日常我們使用爬蟲進(jìn)行數(shù)據(jù)抓取回來之后,往往需要進(jìn)行數(shù)據(jù)解析。
使用它能讓你開心愉快提取里面的爬回來的數(shù)據(jù)。
2. Arrow
用過datetime標(biāo)準(zhǔn)庫的同學(xué)都知道,這個庫每次需要import各種時間模塊格式化,非常不友好,arrow直接接受各種時間(datetime,date,timestamp)類型轉(zhuǎn)化為Arrow類型,然后進(jìn)行各種格式化操作,非常方便。很是人性化,簡直是居家旅行必備良藥
3. Requests
題圖就是requests的logo,這個庫使用量之大,Python開發(fā)者應(yīng)該是無人不知無人不曉。
requests是日常網(wǎng)絡(luò)庫使用最頻繁的一個,不管是用于正式還是測試,它完全滿足與日常網(wǎng)絡(luò)的需求,非常人性化,簡單好用。
requests目前在github有36+的star,除了功能強(qiáng)大,源碼也是寫的非常贊。五星推薦
4. Fabric
對于少量服務(wù)器,日常自動化發(fā)布配置,與服務(wù)器交互只需要配置一個fabfile.py的自動化腳本就行,非常簡單方便。如果需要更多配置運(yùn)維可以使用ansible,這個后期我單獨(dú)和大家討論。
5. Statsd
作為一枚開發(fā)同學(xué),服務(wù)器API性能,耗時監(jiān)控是一個很重要的數(shù)據(jù),我們需要收集起來進(jìn)行實(shí)時分析。
statsd是一個網(wǎng)絡(luò)守護(hù)進(jìn)程,通過Python客戶端,我們可以統(tǒng)計(jì)監(jiān)聽API數(shù)據(jù)發(fā)送到服務(wù)端,比如ES,influxdb,promethues,并且用Grafana進(jìn)行數(shù)據(jù)展示。
6. Gevent
gevent是基于協(xié)程的Python網(wǎng)絡(luò)庫,通過gevent使的協(xié)程的使用變得非常簡單,遇到阻塞你不需要顯示切換,程序會進(jìn)行自動調(diào)度。使用非常廣泛,在部署flask,celery往往會加入gevent提高服務(wù)性能。
7. Supervisor
之前文章提到過supervisor可以大大方便我們進(jìn)行進(jìn)程管理,開始,重啟,停止,查看日志等等。
8. Voluptuous
這個庫估計(jì)很多同學(xué)不知道,主要是日常寫API的時候進(jìn)行數(shù)據(jù)校驗(yàn),當(dāng)前端API傳遞參數(shù)過多的時候,這個庫,可以通過裝飾器的方式提前進(jìn)行校驗(yàn)數(shù)據(jù)邏輯,大大降低了你在代碼邏輯校驗(yàn)數(shù)據(jù)的耦合,強(qiáng)烈推薦后端的同學(xué)使用。
9. Raven
單純這個名字大家可能不那么敏感,但是sentry大家肯定就知道了。
這個庫就是sentry服務(wù)的SDK包。對于日常郵件報(bào)警我們通過安裝了這個包配合sentry后端服務(wù),就能夠進(jìn)行各種郵件報(bào)警的錯誤收集。
另外通過設(shè)置日志等級,我們能輕松通過logger進(jìn)行觸發(fā)報(bào)警。
這個包適合多個語言,不僅僅是Python語言之下。
10. uWSGI
uWSGI這個是一個web服務(wù)器,它實(shí)現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議,我們在Python日常部署文章提到過,主要通過Nginx + uWSGI 拉動我們應(yīng)用服務(wù)(比如Django)提高服務(wù)吞吐量。