Python Flask,資料庫,SQLAlchemy,資料庫查詢
阿新 • • 發佈:2019-01-01
資料庫的增、刪、改通過 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() # 返回列表中的元素內容取決於查詢的列