You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask中如何提取同一parent_id的评论数据存入变量?

获取同一文章下的所有评论(Flask-SQLAlchemy实现)

嘿,作为Flask新手,这个需求其实很容易实现!既然你的Comment模型已经定义好了,而且parent_id对应文章ID,咱们直接用SQLAlchemy的查询API就能搞定。

基础实现方式

核心思路就是用filter_by()方法筛选出parent_id等于目标文章ID的所有评论,再用.all()把结果转为列表赋值给comments变量。

示例代码:

# 先定义你要查询的目标文章ID(比如文章ID是10)
target_article_id = 10

# 执行查询,获取所有对应parent_id的评论
comments = Comment.query.filter_by(parent_id=target_article_id).all()

执行完这行代码后,comments就是一个包含所有匹配Comment对象的列表,你可以遍历它获取每个评论的author、comment等属性。

在视图函数中使用的示例

如果是在Flask视图里要展示文章的评论,可以这样写:

from flask import render_template
from your_app import app, db
from your_app.models import Comment

@app.route('/article/<int:article_id>')
def show_article(article_id):
    # 获取当前文章的所有评论
    comments = Comment.query.filter_by(parent_id=article_id).all()
    # 把评论传给模板渲染
    return render_template('article_detail.html', article_id=article_id, comments=comments)

额外小技巧

  • 排序评论:如果想按评论ID倒序(最新的评论在前),可以加上排序语句:
    comments = Comment.query.filter_by(parent_id=article_id).order_by(Comment.id.desc()).all()
    
  • 处理空结果:如果没有匹配的评论,.all()会返回空列表,不用担心报错,直接判断列表是否为空即可。

内容的提问来源于stack exchange,提问作者urFate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 19:12:36