Skip to main content
 首页 » 编程设计

python之Sqlalchemy 返回元组

2025年05月04日28lhb25

我有两个表:

class Wishlist(db.Model): 
    __tablename__ = 'wishlists' 
 
    id = db.Column(db.Integer, primary_key=True) 
    device_id = db.Column(db.Integer, nullable=False) 
 
class Device(db.Model): 
    __tablename__ = 'devices' 
 
    id = db.Column(db.Integer, primary_key=True) 
    unique_id = db.Column(db.String(255), nullable=False) 

每个心愿单都有 Integer 字段和 Device.id。当我选择所有愿望 list 并尝试加入 Device 对象进行查询时:

query = db.session.query( 
        Wishlist, 
        Device 
    ).filter( 
        ... 
    ).join( 
        Device, 
        Device.id == Wishlist.device_id 
    ) 

SqlAlchemy 为我返回元组:

(<app.main.models.Wishlist object at 0xa5cec2c>, <app.main.models.Device object at 0xa5d14ac>) 

但是如何设置像wishlist属性这样的设备对象,为它访问wishlist.device.id

请您参考如下方法:

您在调用query 时指定了Wishlist 和Device。如果您只想通过属性公开前者和后者,请仅指定一个。

query = db.session.query( 
    Wishlist 
).filter( 
    ... 
).join( 
    Device, 
    Device.id == Wishlist.device_id 
)