如何基于Flask中的父表访问子表记录

如何基于Flask中的父表访问子表记录,flask,flask-sqlalchemy,Flask,Flask Sqlalchemy,我正在开发一个Flask应用程序,它使用Flask SQLAlchemy连接我的phpMyAdmin数据库。现在在该数据库中,我有2个表post和段落,这样就有多个段落与一个post关联,即段落表有一个外键PostSNo,它是Posts表中名为SNo的主键。Posts表有一个slug列。因此,我试图实现的是获取所有段落记录,这些段落记录在段落==Posts表的SNo主键中没有外键列 以下是我尝试过的,但它引发了一个例外: 类Postsdb.Model: ' 与Posts表集成并从中获取数据 '

我正在开发一个Flask应用程序,它使用Flask SQLAlchemy连接我的phpMyAdmin数据库。现在在该数据库中,我有2个表post和段落,这样就有多个段落与一个post关联,即段落表有一个外键PostSNo,它是Posts表中名为SNo的主键。Posts表有一个slug列。因此,我试图实现的是获取所有段落记录,这些段落记录在段落==Posts表的SNo主键中没有外键列

以下是我尝试过的,但它引发了一个例外:

类Postsdb.Model: ' 与Posts表集成并从中获取数据 ' sno=db.Columndb.Integer,主键=True title=db.Columndb.String30,null=False date=db.Columndb.String10,null=True slug=db.Columndb.String50,null=False 类段落DB.模型: ' 与段落表集成并从中获取数据 ' sno=db.Columndb.Integer,主键=True paraindex=db.Columndb.Integer,null=False content=db.Columndb.String10000,null=False imageurl=db.Columndb.String100,可为null=True postsno=db.Columndb.Integer,null=False 应用程序发送到帖子页面 @app.route'/post/',methods=['GET'] def POST_段塞: post=Posts.query.filter\u byslug=post\u slug para=段落.query.filter\u bypostsno=post.sno 返回render_模板'post.html',post=[post,para] 它提出的例外是 AttributeError:“BaseQuery”对象没有属性“sno”

我想您需要这样:

post = Posts.query.filter_by(slug=post_slug).all()
para = Paragraphs.query.filter_by(postsno=post.sno).all()

其他运算符(如first或first)也可用,但我假设您需要所有匹配的记录。

我要做的是根据父项的主键获取关联的子记录。我发布的内容至少应该修复您的AttributeError。你试过了吗?是的,我试过了,它确实帮助我不引起属性错误,但同时它也不能解决问题。不过,谢谢你的回答,也许它能帮助我在未来的其他疑问。