请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

flask_SQLAlchemy关联查询,返回两个表的字段,怎么解决?

class UserInfo(db.Model):
    __tablename__ = 'userinfo'

    user_id = db.Column(db.INTEGER,primary_key=True, autoincrement=True, comment="用户ID")
    username = db.Column(db.VARCHAR(30),nullable=True, comment="用户名")
    phone = db.Column(db.VARCHAR(20),nullable=True, comment="手机号")
    sex = db.Column(db.SMALLINT,nullable=False, default=0,comment='性别')
    
    
class Account(db.Model):
    __tablename__ = 'account'

    id = db.Column(db.INTEGER, primary_key=True, autoincrement=True)
    user_id = db.Column(db.INTEGER,default=0, nullable=False, comment="用户名称")
    total = db.Column(db.DECIMAL(20,6), default=0, nullable=False, comment="资金总额")
    
    
@web.route('/select/<int:user_id>')
def userinfo(user_id):
    obj_list = UserInfo.query.join(Account,UserInfo.user_id == Account.user_id).filter(UserInfo.user_id == user_id).all()
    return "%s:%d" %(obj_list[0].username,obj_list[0].total)


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

1回答

NavCat 2018-11-21 22:22:59

推荐你一种方法:

通过dir()函数查看返回的结果中的属性。譬如:

print(dir(obj_list[0]))

你看看打印的结果中有没有userinfo,account相关的内容,如果没有,你截图上来,我帮你看看。

0 回复 有任何疑惑可以回复我~
  • 提问者 SakuraGaara #1
    有userinfo的相关内容,没有accounnt的相关内容
    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__mapper__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__table__', '__tablename__', '__weakref__', '_decl_class_registry', '_sa_class_manager', '_sa_instance_state', 'addtime', 'card_id', 'card_type', 'email', 'metadata', 'password', 'pattern_lock', 'paypassword', 'phone', 'query', 'query_class', 'real_status', 'realname', 'sex', 'user_id', 'username']
    回复 有任何疑惑可以回复我~ 2018-11-22 08:44:28
  • NavCat 回复 提问者 SakuraGaara #2
    看到了,你要的数据在两张表,可以使用这种查询
    obj_list = UserInfo.query.with_entities(UserInfo.username, Account.total).join(Account,UserInfo.user_id == Account.user_id).filter(UserInfo.user_id == user_id).first()
    回复 有任何疑惑可以回复我~ 2018-11-22 11:03:56
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号