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()
# 返回列表中的元素内容取决于查询的列

猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/85541294