如何连接表并在SQLAlchemy中获得组合信息

问题描述 投票:0回答:1

[目前,我在Postgres中有两个表分别为Category和Comment,我正在使用Python SQLAlchemy来获取数据并公开API。但是我在加入表格时遇到了问题,请您帮帮我

关系:每个类别可以有多个评论


class Comment(db.Model):
    __tablename__ = 'comments'
    id = db.Column(db.Integer, primary_key=True)
    comment_desc = db.Column(db.String(250), nullable=False)
    creation_date = db.Column(db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False)
    category_id = db.Column(db.Integer, db.ForeignKey('categories.id', ondelete='CASCADE'), nullable=False)
    category = db.relationship('Category', backref=db.backref('comments', lazy='dynamic' ))


class Category(db.Model):
    __tablename__ = 'categories'
    id = db.Column(db.Integer, primary_key=True)
    category_name = db.Column(db.String(150), unique=True, nullable=False)


class CategorySchema(ma.Schema):
    id = fields.Integer()
    category_name = fields.String(required=True)


class CommentSchema(ma.Schema):
    id = fields.Integer(dump_only=True)
    category_id = fields.Integer(required=True)
    comment_desc = fields.String(required=True, validate=validate.Length(1))
    creation_date = fields.DateTime()

现在我想以REST API的形式获取详细信息

API中的category_id,category_name,comment_desc,我尝试如下进行操作但是它没有获取组合的详细信息

category_comment_details = Comment.query.all(category_id,category_name,comment_desc).join(Category,Category.id= Comment.category_id)

python flask sqlalchemy flask-sqlalchemy
1个回答
0
投票

我认为您可以按照以下步骤来实现,对于SQLAlchemy版本1.3.12

c = Comment.query.filter(Category.id==1).all() # this will return list of objects which matches the filter condition

for item in c:
  item.id # comments id
  item.comment_desc
  item.category.category_name
© www.soinside.com 2019 - 2024. All rights reserved.