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

来源:5-4 网易新闻前台

SakuraGaara

2018-11-21

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)


写回答

1回答

NavCat

2018-11-21

推荐你一种方法:

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

print(dir(obj_list[0]))

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

0
2
NavCat
回复
SakuraGaara
看到了,你要的数据在两张表,可以使用这种查询 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
共2条回复

Python操作三大主流数据库-MySQL+MongoDB+Redis

一次实战同时掌握Python操作MySQL,MongoDB,Redis 三大数据库使用技巧

2024 学习 · 376 问题

查看课程