Flask SQLAlchemy 條件查詢

2021-10-01 06:08:10 字數 1207 閱讀 8686

根據一些條件的集合獲取過濾後的資料。

要得到滿足一系列等式條件的資料列表,則我們可以使用 query.filter_by 過濾器。

query.filter 接收關鍵字引數,並把接收到的引數作為我們想要在資料庫裡查詢的欄位名值對。比如,要找到使用者名為admin 的使用者列表,則可以這樣:

>>> users = user.query.filter_by(username='admin').all()
可以用多個條件和鏈式查詢:

>>> users = user.query.order_by(user.username.desc()).filter_by(username='admin').limit(2).all()
query.filter_by 只有在你知道要查詢的值時才工作。使用query.filter則可以避免這一不方便之處,你可以把乙個比較大小的python表示式傳給它:

>>> user = user.query.filter(user.id > 1).all()
query.filter可以接收任何python的比較表示式。

對於python的常規型別,比如:整數(integers)、字串(string)和日期(dates),可以使用 == 操作符來表示相等的比較。對於型別為整數、浮點數(float)、日期(date)的列,還可以用 >、<、<= 和 >= 操作符來表示不等的比較。

一些複雜的sql查詢也可以轉為用sqlalchemy的函式來表示。例如,可以像下面這樣實現sql中 in、or 和 not 的比較操作(sqlalchemy中, 與none 的比較都會轉化為null 的比較):

>>> from flask_sqlalchemy import not_, or_

>>> user = user.query.filter(user.usernaem.in_(['admin']), user.password==none).first()

# 找出擁有密碼的使用者

>>> user = user.query.filter(not_(user.password == none)).first()

# 這些方法都可以被組合起來

>>> user = user.query.filter(or_(not_(user.password==none),user.id>1)).first()

Flask SQLAlchemy學習總結

配置鍵說明 sqlalchemy database uri 用於連線資料的資料庫。例如 sqlalchemy binds 乙個對映繫結 bind 鍵到 sqlalchemy 連線 uris 的字典。用於繫結多個資料庫 sqlalchemy echo 如果設定成 true sqlalchemy 將會記...

flask SQLAlchemy基本使用

作為資料的操作,最基本的就是增刪改查 常用的sqlalchemy查詢過濾器 過濾器說明 filter 把過濾器新增到原查詢上,返回乙個新查詢 filter by 把等值過濾器新增到原查詢上,返回乙個新查詢 limit 使用指定的值限定原查詢返回的結果 offset 偏移原查詢返回的結果,返回乙個新查...

Flask SQLAlchemy定義模型

模型表示程式使用的資料實體,在flask sqlalchemy中,模型一般是python類,繼承自db.model,db是sqlalchemy類的例項,代表程式使用的資料庫。類中的屬性對應資料庫表中的列。id為主鍵,是由flask sqlalchemy管理。db.column類建構函式的第乙個引數是...