如果你的表比较小的话,可以对每个id单独查询,然后组成一个list:
[Shoe.query.filter_by(id=id).one() for id in my_list_of_ids]
如果你的表很大,上述查询方法会很慢。此时建议使用in条件的查询
shoes = Shoe.query.filter(Shoe.id.in_(my_list_of_ids)).all()
[next(s for s in shoes if s.id == id) for id in my_list_of_ids]
有model Account,SQLAlchemy 查询语句如下:
query = Account.query.filter(Account.id.in_(account_ids)).order_by(Account.date_created.desc())
这里 uids 如果为空,执行查询会有如下警告:
/usr/local...
from sqlalchemy import Column
from sqlalchemy import and_, or_
from sqlalchemy import asc, desc
from sqlalchemy import exists
from sqlalchemy import func
class Department(db.Model):
"""用户管理"""
from
sqlalchemy import create_eng
ine
from
sqlalchemy.ext.declarative import declarative_base
from
sqlalchemy import Column,
Integer,Str
ing
# 1.创建数据库引擎,链接数据库
eng
ine = create_eng
ine('my
sql+pymy
sql://root:123456@127.0.0.1:3306/
sqlalchemy_s14?charset=utf8')
sqlalchemy用in_ 批量delete
# 删除记录时,默认会尝试删除 session 中符合条件的对象,而 in 操作估计还不支持,于是就出错了。解决办法就是删除时不进行同步,然后再让 session 里的所有实体都过期
history_delete_num = session.query(Model).filter(Model.id.in_(id_list))\
.delete(synchronize_session=False)id_list