python

Python 版本管理的好工具 - pyenv

Python 近 10 年來一直在演進,因此 Python 專案的開發也需要考慮版本的問題。

特別是 Python 2 已經退休了,而現在的 Python 專案都以 Python 3 為主,然而有些公司內部的老舊專案仍以 Python 2 開發,因此開發者必須在 Python 2 與 3 之間進行切換。

如果你有 Python 版本切換上的困擾,那麼 pyenv 會是你的好朋友!

Last updated on  Mar 13, 2023  in  Python 程式設計 - 初階 , Python 模組/套件推薦  by  Amo Chen  ‐ 2 min read

用 pytest 結合 Allure2 產生精美的測試報表

隨著專案的規模越來越大,測試的效率及測試工具的有效運用也會成為開發團隊很重要的需求之一。

剛好有人介紹一款不錯的測試報表產生工具 Allure ,除了支援支援 Java, Javascript, Ruby, PHP, .Net, Scala, Python 等多種程式語言之外,連 pytest , behave 等 Python 常見的測試套件也都有整合,故以此文記錄一下這款不錯的報表產生工具。

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

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

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