文章

Python 打包(packaging)與套件相依性管理系統 - Poetry

Python 專案的開發者目前大多數都會選擇 pip 或者 pipenv 作為套件相依性的管理工具,其中 pipenvPipenv: promises a lot, delivers very little 討論串中也得到不少負面評價,主要是 pipenv 一開始承諾的 features 遠多過於後來 release 的版本,而且有些反直覺的行為(e.g. Issue 3304 merge 之前 pipenv 每當安裝新套件就會強制更新 Pipfile.lock 內的所有套件版本)造成開發者困擾,雖然如此, pipenv 依然持續進化中,我們仍可對其抱持中立的態度。

不過前述的討論串中,蠻多人提到 Poetry 這套打包(packaging)與套件相依性管理系統,看來也是值得試試看的一個工具。因此本文特地介紹 Poetry 的使用方法。

Posted on  Oct 1, 2019  in  Python 程式設計 - 高階  by  Amo Chen  ‐ 3 min read

Docker 玩轉 MySQL

MySQL 是世界知名的關聯式資料庫(RDBMS),相當多應用(Application)背後都是以 MySQL 作為後端資料庫,是除了 PostgreSQL 之外的另一選擇。

MySQL 官方也提供 Docker 映像檔(image)讓人可以輕鬆透過 Docker 運行容器化的 MySQL

本文記錄如何使用 Docker hub 上的 MySQL 。

Last updated on  Apr 19, 2020  in  用 Docker 架設服務  by  Amo Chen  ‐ 3 min read

Google Sheets INDIRECT 範例解說

引用自 Google Sheets VLOOKUP HLOOKUP MATCH 範例解說 Google 試算表(Spreadsheets) 是個好工具,內建不少跟 Excel 相似的函數能夠使用,所以會一點 EXCEL 的人都能夠輕鬆上手。如果用來取代 Excel 應該是問題不大,因此我也常常會推薦使用 Google Spreadsheets 統計數據、製作表單等等。

在試算表中,如果 A 工作表的儲存格想要關聯至 B 工作表的儲存格,公式為

=B工作表名稱!儲存格名稱

如果你要使用公式來抓工作表名稱,就必須藉助 INDIRECT 函數來將字串轉換為位址。

Posted on  Aug 18, 2019  in  Google 試算表  by  Amo Chen  ‐ 1 min read

SQLAlchemy 強制清空所有資料表(tables)

在產品開發時,有時候會有將所有的資料表進行清空的需求,如果是用 SQLAlchemy 清空單一資料表也很簡單,但如果在多個資料表都有用到 FOREIGN KEY 就很容易遇到 IntegrityError ,原因在於如果有其他紀錄(record)關聯到程式正在刪除的紀錄(record)時,就會導致那些紀錄違反 FOREIGN KEY Constraint 無法刪除成功。

本篇記錄如何忽視 FOREIGN KEY Constraint 強制刪除所有資料表。

Posted on  Aug 4, 2019  in  Python 模組/套件推薦  by  Amo Chen  ‐ 2 min read

Python One-Time Password 的好朋友 - pyotp

隨著資訊安全越來越受重視,也越來越多網站鼓勵用戶啟用 2FA(two-factor authentication) 或 MFA(multi-factor authentication) 以增加帳號的安全性。

而這些網站通常都會推薦用戶使用 Google Authenticator 作為 2FA / MFA 的 APP 。

因此對於開發者而言,如果要實作 2FA / MFA 功能,只要有能夠同時滿足產生 One-Time Password 與方便整合 Google Authenticator 的套件,就是最幸福的事!

如果你是 Python 的開發者,那麼推薦你使用 pyotp !

Posted on  Jul 27, 2019  in  Python 模組/套件推薦  by  Amo Chen  ‐ 3 min read