我主要工作是後端,所以這一點我就不說了。本文主要說下我用 python 做的其它的一些事。
乙個月可能有一兩次需要匯出一些資料,每次的需求都有些不同。剛開始的時候還好,用資料庫的一些連線工具,比如 sequel pro 和 datagrip 等,直接匯出就能滿足要求。後面呢,有些字段需要自定義又或者是要連表,用那些工具不大方便,於是就只能自己寫指令碼了。網上找了找,看到 kenneth reitz 大牛寫的乙個 records 庫,用起來超級爽。
執行 sql 簡單粗暴
import records
db = records.database('mysql+pymysql://'
'username:password@host:port'
'/database?charset=utf8')
rows = db.query('select * from books')
複製**
讀出的結果使用也比較方便,迭代時使用字典或物件的方式可以直接獲取相應值,相比一些類庫需要自己轉換方便得多
for r in rows:
print(r['name'], r['price'])
# 或者
# print(r.name, r.price)
複製**
匯出格式支援也比較豐富,有 csv、yaml、xls 等。比如要匯出 xls 檔案
with open('books.xls', 'wb') as f:
f.write(rows.export('xls'))
複製**
當然,由於這個庫使用起來簡單、靈活,除了匯出之外,還做了一些其它的事。比如,某個表某些資料有異常,要找出是哪幾條,純寫 sql 太麻煩的時候,使用這個庫也能解決問題。
平時做一些支撐性工作的時候,通過這個庫還是省了不少時間。
開發時我們經常發現某些**結構特別類似,自己一行一行的敲感覺太浪費時間,這個時候我們應該考慮用指令碼來處理。
比如,新增一條資料時,如果用的是 sqlalchemy 的話,可能會碰到類似的語句
def create(book):
new_book = book()
new_book.name = book.get('name', '')
new_book.price = book.get('price', 0)
# ...
db.session.add(new_book)
db.session.flush()
複製**
如果當表的字段特別多的時候,自己一行一行的敲完太痛苦。所以,我們可以寫個指令碼自動生成一下
# coding=utf-8
import records
db = records.database('mysql+pymysql://'
'username:password@host:port'
'/database?charset=utf8')
books = db.query('select * from books limit 1')
columns = list(books.as_dict()[0].keys())
for column in columns:
print(f"new_book. ="
f" book.get('', '')")
複製**
執行後得到下面的**
new_book.id = book.get('id', '')
new_book.cat_id = book.get('cat_id', '')
new_book.name = book.get('name', '')
new_book.price = book.get('price', '')
複製**
將上面的複製到需要的地方,然後把 get() 的預設值自己根據型別手動調下,就搞定了。
當然,如果在字段不多的情況下,這樣做反而更浪費時間了。自己根據需要選擇就好。
這裡,只是舉個例子,工作中碰到重複性的任務多的時候,不妨考慮寫個指令碼。剛開始可能費點時間,後面可是效率的大大提公升。
某些時候,我可能會關注些什麼東西,想在合適的時候提醒我下。比如,我同時關注了好幾個電商平台上的同一款手機,我希望在這幾個平台的最低價低於多少的時候提醒我下,我就會寫個指令碼去解決。
我每天都在github上做些什麼
維護自己的repo,思考改進,編碼,提交 解決issue。自己寫乙個開源專案是最好的學習過程。會有人去關注你的專案,給你貢獻 和你用 進行交流。而對於對於自己,你的專案有人關注,會激勵自己不斷的思考如何做到更好。我follow一些熱門repo的作者,有時間會去看看他們star了哪些repo,經常能在...
管理做些什麼
管理是什麼,這是乙個很模糊的概念,管理者總說自己很忙,但到底忙在 很多人說不出來,總覺得自己整天是為管理的事情忙得團團轉,但到頭來一總結,好像很難總結出乾了哪些具體的事情,好像都是小事,一串串吞噬了自己所有的時間。其實,這些不重要,管理看的不是過程,是結果。如果你帶的團隊做出了成績,你的管理就是好的...
工作之外,做些什麼
工作一年有餘,有時候常常會想這樣乙個問題 每天除了工作,吃飯,睡覺,面對電腦之外還能做些什麼呢?人生真的是變化無常的東西,從小時候的軍校夢想破滅,到後來的從事體育生涯 運動員中的嬌嬌者,卻因一場大病不得不半途而廢,再到後來的海南師範 因家人嚴重不同意轉折到京乙個二類學校上大學,不料想法種種,覺得在那...