Python 如何使用Alchemy从多个表中获取数据

Python 如何使用Alchemy从多个表中获取数据,python,flask,flask-sqlalchemy,Python,Flask,Flask Sqlalchemy,这是我的桌子 class maindevotee(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(225)) phonenumber = db.Column(db.String(225)) gothram = db.Column(db.String(225)) date = db.Column(db.String(50)) addr

这是我的桌子

class maindevotee(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(225))
    phonenumber = db.Column(db.String(225))
    gothram = db.Column(db.String(225))
    date = db.Column(db.String(50))
    address = db.Column(db.String(250))

    def json(self):
        return {'id': self.id, 'name':self.name, 'phonenumber': self.phonenumber, 'gothram': self.gothram,
                'date': self.date, 'address': self.address}

class relatives(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    main_id = db.Column(db.Integer, db.ForeignKey('maindevotee.id'), nullable=False)
    name = db.Column(db.String(225))
    star = db.Column(db.String(225))
    gender = db.Column(db.String(45))
    relation = db.Column(db.String(45))

    def json(self):
        return {'main_id': self.main_id, 'name': self.name, 'star':self.star,
                'gender': self.gender, 'relation': self.relation}
    
class services(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    main_id = db.Column(db.Integer, db.ForeignKey('maindevotee.id'), nullable=False)
    pooja = db.Column(db.String(225))
    god = db.Column(db.String(225))
    price = db.Column(db.Float)
    donation = db.Column(db.String(225))
    booking_fromdate = db.Column(db.String(50))
    booking_todate = db.Column(db.String(50))
    prasadam = db.Column(db.String(225))

    def json(self):
        return {'main_id': self.main_id, 'pooja': self.pooja, 'god': self.god,
                'price': self.price, 'donation': self.donation, 'booking_fromdate': self.booking_fromdate,
                'booking_todate': self.booking_todate, 'prasadam': self.prasadam}
如何在一个请求中从多个表中获取数据。这是我连接三个表的侦察代码。 若我试图从数据库中获取数据,它将引发一个错误。 错误为AttributeError:“结果”对象没有属性“获取数据” 我可以使用外键从数据库中获取数据吗

data = db.session.query(maindevotee, relatives, services)\
    .filter(maindevotee.phonenumber == 3251469870)\
    .join(relatives, maindevotee.id == relatives.main_id)\
    .join(services, maindevotee.id == services.main_id)\
    .first()

def get_data():
    return [data.json(get) for get in data.query.all()]

@app.route('/getdata/<phonenumber>',methods=['GET'])
def getdata():
    return jsonify({'Devotee list': data.get_data()})
data=db.session.query(主播、亲属、服务)\
.filter(main.phonenumber==3251469870)\
.join(亲戚,主奉献者.id==亲戚.main\u id)\
.join(services,main奉献者.id==services.main\u id)\
.first()
def get_data():
返回[data.json(get)for get in data.query.all()]
@app.route('/getdata/',methods=['GET'])
def getdata():
返回jsonify({'奉献者列表':data.get_data()})
正确

data = db.session.query(maindevotee, relatives, services)\
    .filter(maindevotee.phonenumber == 3251469870)\
    .join(relatives, maindevotee.id == relatives.main_id)\
    .join(services, maindevotee.id == services.main_id)\
    .first()

如需更多澄清,请在评论中询问

经评论


祝您好运

“它将引发错误”->请将您的问题包含完整的错误回溯。它将再次引发相同的错误。错误是AttributeError:“result”对象没有属性“get_data”哪个部分产生错误?首先感谢您的回复。返回jsonify({'developer list':data.get_data()}),我认为我的代码中有任何更正。
data = db.session.query(maindevotee, relatives, services)\
    .filter(
    (maindevotee.phonenumber == '3251469870')
    & (maindevotee.id == relatives.main_id)
    & (maindevotee.id == services.main_id)
    ).first()
@app.route('/getdata/<phonenumber>',methods=['GET'])
def getdata():
    return jsonify({'Devotee list': data.get_data()})
@app.route('/getdata/<phonenumber>',methods=['GET'])
def getdata():
    return jsonify({**data.maindevotee.json(),**data.relatives.json(),**data.services.json()})