Python 【flask-mysql】请问 flask 中怎么实现 “类似于 mybatis 的动态 sql”

cooling · May 28, 2022 · Last by 残枫 replied at June 06, 2022 · 5686 hits

【flask-mysql】请问 flask 中怎么实现 “类似于 mybatis 的动态 sql”

最佳回复
cooling 回复

一般来说,query 后面一般不写就是查询全部,filter_by 和 filter 默认用 filter,其他的没啥毛病

共收到 5 条回复 时间 点赞

不确定你认为的动态 sql 是怎样的,但 flask 中一般推荐 orm 工具 SQLAlchemy 集成。
如果想实现动态 sql 也简单,如下

query=db.session.query(x1,x2,x3).filter(公共条件)
if 情况1:
    query=query.filter(条件1)
if 情况2:
    query=query.filter(条件2)
rst=query.order_by(排序).all()

有的,只是没有 mybatis 那样的写法,flask-sqlalchemy 也有差不多的过滤的写法,比如:

params = {'id': 1, 'name': 'lily'}
query.filter(**params)

所以你就差不多等于怎么去拼接这个 dict 就好了,参考:https://discuss.helloflask.com/t/topic/452

cooling #3 · June 05, 2022 Author
JoyMao 回复

谢谢大哥指导,已实现功能:

cooling #4 · June 05, 2022 Author
残枫 回复

谢谢大哥的指导,已实现功能

cooling 回复

一般来说,query 后面一般不写就是查询全部,filter_by 和 filter 默认用 filter,其他的没啥毛病

cooling 关闭了讨论 06 Jun 12:31
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up