Python SQLAlchemy DISTINCT 範例
本文記錄幾種與 SELECT DISTINCT
相同作用的 SQLAlchemy 寫法。
Posted on Jul 12, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 1 min read
本文記錄幾種與 SELECT DISTINCT
相同作用的 SQLAlchemy 寫法。
Posted on Jul 12, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 1 min read
Connection Pool 是資料庫連線管理的機制,用來節省資料庫連線的成本,達到較高的資源利用效益。 Connection Pool 會事先與資料庫一次建立多個連線(connection),並維持住這些連線,每當應用程式(Application)需要操作資料庫時,就會從 Connection Pool 中提供(checkout)連線給應用程式使用。
但是資料庫連線也有斷線的可能,那麼要如何確保從 Connection Pool 取得的連線是可用的呢?
其中一種確定連線可用的機制就是 Pre-ping 。
本文就來談談 Pre-ping 與 SQLAlchemy 的 Pre-ping 如何設定。
Posted on Jun 5, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 2 min read
提到 Python 非同步(asynchronous)工作通常都會想到 Celery ,而 Web-based 應用程式也經常會將耗時的要求利用非同步的方式完成,所以 Django, Flask 等 Web framework 也幾乎都會整合 Celery 。
其中 Flask 的 Celery 相關套件相對鮮少維護,因此不建議利用 Flask Celery 套件整合 Celery 。
所幸用 Flask 整合 Celery 並非難事,本文將紀錄如何不利用 Flask 套件的情況下整合 Celery 。
Posted on Jun 1, 2019 in Flask by Amo Chen ‐ 2 min read
SQLAlchemy ORM(Object-Relational Mapping)利用 relationship() 將多個 Model 關聯在一起,讓我們直接用存取屬性方式,直接就能夠使用被關聯的 model ,使用起來十分方便。
但是 SQLAlchemy ORM 的 relationship()
預設使用一種稱為 lazy loding
的技術,如果不了解其原理的話,很容易會有 n+1 query
的問題。
本文將簡單地談談 SQLAlchemy relationship()
。
Posted on Jun 1, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 3 min read
Redis 有個 Pub/Sub
的功能,簡單來說,就是可以發佈(publish)消息或者訂閱(subscribe)消息的功能。訂閱方跟發佈消息(message)方,都是透過所謂的 Channel 傳遞與接受訊息。
相較於選擇 RabbitMQ 這種重量級的 message broker, 如果是一些簡單的應用(Application) 其實也可以考慮選擇利用 Redis 的 Pub/Sub 達到訊息傳遞的目的。
本文簡單紀錄如何在 Python 中使用 Redis 的 Pub/Sub 。
Posted on Apr 26, 2019 in Python 程式設計 - 高階 by Amo Chen ‐ 2 min read
隨著 Gmail 與 G Suite 的普及,越來越多人擁有 Google 的帳號,因此現代應用程式在整合登入服務時,支援使用 Google 帳號的進行登入也很重要,本篇記錄如何用 Flask 整合 Google Sign-In 。
Posted on Apr 20, 2019 in Flask by Amo Chen ‐ 3 min read
這陣子看了 10 common security gotchas in Python and how to avoid them , 該文章主要介紹幾種撰寫 Python 程式時需注意的安全問題,例如處理來自外部的 XML, YAML 檔案等可能會面臨的安全性問題,相當值得一讀,保證精彩。
該文的最後也介紹一款 Python 的靜態掃描工具 Bandit , 幫助我們找出程式內可能的漏洞或問題。
Last updated on Apr 16, 2024 in Python 模組/套件推薦 , Python 資訊安全 by Amo Chen ‐ 2 min read
SQLAlchemy 是 Python 生態系中相當成熟的 ORM(Object Relational Mapper) 套件,不過也因為支援相當多功能,所以經常要翻閱文件查詢 SQL 中相應的功能要如何撰寫。
本篇紀錄如何使用 SQLAlchemy 撰寫含有 IN
與 NOT IN
語句的 ORM.
Posted on Mar 24, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 2 min read