user和article的多表关联查询,返回结果却是空list

user和article的多表关联查询,返回结果却是空list

6-1节 老师您好,user和article的多表关联查询,返回结果却是空list,若把filter拿掉,

可正常返回全部,filter在这里没有作用,我找不到问题在哪,请协助,谢谢


https://img1.sycdn.imooc.com//climg/64bb75280926c06b17390330.jpg


补充:Navicat SQL查询是没问题的


https://img1.sycdn.imooc.com//climg/64bb772e09f5930e13270444.jpg


result = db_session.query(User.username, Article.title).join(Article, User.uid == Article.uid).filter(User.username == username).all()

print(result)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
大周 2023-07-22 15:35:06

排查思路:如果把filter去掉就可以返回全部,那问题应该就出现在filter(User.username == username) 这句代码上,但这句代码又没有看出来哪里写的不对,看来看去语法就是正确的。所以问题可能出现在username这个变量上,这个变量是从request.args.get()这里获取到的。你可以在这一行打一个断点,调试运行一下,或者是直接打印一下username这个变量,看看获取到的值具体是什么。是不是就是因为fileter的时候,确实没有查到这个数据。

  • 提问者 Lester #1

    https://img1.sycdn.imooc.com//climg/64bb8953098ba5ee15970808.jpg

    问题好怪,username确实是有值的,请看上图,也做了判断,写了另一接口,username直接写死,传进去,这样是可以的,我的妈啊,我快疯了,不难啊,就是莫名奇妙的结果.....

    https://img1.sycdn.imooc.com//climg/64bb8ddb09a0df8a16830575.jpg

    2023-07-22 16:06:23
  • 提问者 Lester #2

    我后来改成post接口,这样是可以的@@,原来的get方法,我再查查到底是为什么,太怪了@@,谢谢老师


    https://img1.sycdn.imooc.com//climg/64bb9555095ea26b15570780.jpg

    2023-07-22 16:39:52
  • 提问者 Lester #3

    改成post,是可以的,太怪了@@


    https://img1.sycdn.imooc.com//climg/64bb9555095ea26b15570780.jpg

    2023-07-22 16:43:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师