如何解决如何在 Flask 中组合和匹配 2 个表
id 与 postID 相关联。输入id(/postComments/id)时如何获取该id的联系方式和评论信息? 我收到一个内部错误...
class posts(db.Model):
__tablename__ = "posts"
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(100))
postName = db.Column(db.String(100))
postDescription = db.Column(db.String(500))
postLike = db.Column(db.Integer)
class postComment(db.Model):
__tablename__ = "postComment"
id = db.Column(db.Integer,primary_key=True)
postID = db.Column(db.Integer)
senderName = db.Column(db.String(20))
commentPost = db.Column(db.String(300))
@app.route('/postComments/<id>',methods=['GET'])
def get_comment_post(id):
userList = posts.query\
.join(postComment,posts.id == postComment.postID)\
.add_columns(posts.id,posts.name,posts.postDescription,postComment.commentPost,postComment.senderName)\
.filter(posts.id == id)
解决方法
修改您的模型(并执行迁移)以允许引用外键:
class postComment(db.Model):
__tablename__ = "postComment"
id = db.Column(db.Integer,primary_key=True)
postID = db.Column(db.Integer,db.ForeignKey("posts.id")) # <--- Set to Foreign Key
senderName = db.Column(db.String(20))
commentPost = db.Column(db.String(300))
# Establish relationship
post = db.Relationship("posts",backref="postComment") # <--- backref makes this relationship available in the other class
# This should get simpler...
@app.route('/postComments/<id>',methods=['GET'])
def get_comment_post(id):
# Get the comment based on id
my_comment = postComment.query.get(id)
# Get the post associated with that comment
my_post = my_comment.post
# It looks like you're doing an intricate data transformation.
# Do that here...
# Also,for debugging,consider using the following print statements
print(my_comment.__dict__)
print(my_post.__dict__)
考虑阅读此slightly more detailed explanation以建立关系。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。