1. 程式人生 > >Python Flask,資料庫,SQLAlchemy,資料庫查詢

Python Flask,資料庫,SQLAlchemy,資料庫查詢

資料庫的增、刪、改通過 db.session 的會話物件,資料庫的查詢一般通過 模型類名.query() (也可以通過session會話查詢)

 

demo.py(資料庫查詢):

import User  # 匯入模型類

# 通過query查詢
# 查詢所有。 (User是模型類名)
user_list = User.query.all()   # 返回列表

# 查詢第一個
user1 = User.query.first()  # 返回模型類物件。 不存在返回None

# 根據主鍵id查詢
user2 = User.query.get(3)


# 過濾器
# filter_by過濾器 (精確條件)
user_list = User.query.filter_by(name='wang').all()  # 條件只能是等號= 
user = User.query.filter_by(name='wang', age=18).first()   # 逗號連線多個條件,是並且的關係。

# filter過濾器 (通用過濾器。模糊查詢)
user = User.query.filter(User.name=="wang", User.age==18).first()  # 條件可以是==、>、<、>=、<=、!=  
user_list = User.query.filter(User.name.endswith('g')).all()

# 邏輯運算子
from sqlalchemy import or_, and_, not_
user_list = User.query.filter(or_(User.name!='wang', User.email.endswith('163.com'))).all()

# 其他過濾器
user_list = User.query.filter(User.name!="wang").offset(5).limit(5).order_by("-id").all()  # order_by("-id")中的-表示降序。flask-sqlalchemy封裝的排序方式 
user_list = User.query.order_by(User.id.desc()).all()   # SQLAlchemy的原生排序方式。(預設升序)



# 通過session會話查詢。(SQLAlchemy的原始方式。 上面通過query查詢的方式是flask-sqlalchemy封裝的查詢方式)
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)   # app是程式例項
user_list = db.session.query(User).all()    # 查詢所有。 query(User)表示查詢所有列

# 聚合函式,group_by()分組
from sqlalchemy import func  # 匯入聚合函式
obj_list = db.session.query(User.name, User.role_id, func.count(User.role_id)).group_by(User.role_id).all()
# 返回列表中的元素內容取決於查詢的列