如何向烧瓶Web应用程序中的帖子添加注释功能

时间:2015-06-19 01:42:43

标签: python web-applications flask sqlalchemy flask-wtforms

我正在使用Flask开发一个Web应用程序。我很困惑如何为Web应用程序中的帖子添加评论功能。我的数据库模型的一部分是下面给出的

class Post(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    title = db.Column(db.String(140))
    body = db.Column(db.String(2000))
    timestamp = db.Column(db.DateTime)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    comments = db.relationship('Comment', backref='title', lazy='dynamic')

    def get_comments(self):
        return Comment.query.filter_by(post_id=post.id).order_by(Comment.timestamp.desc())


    def __repr__(self):
        return '<Post %r>' % (self.body)

class Comment(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime)
    post_id = db.Column(db.Integer, db.ForeignKey('post.id'))

    def __repr__(self):
        return '<Post %r>' % (self.body)

发布和评论表格为

class PostForm(Form):
    post = StringField('post', validators=[DataRequired()])
    title = StringField('title', validators=[DataRequired()])
class CommentForm(Form):
    comment = StringField('post', validators=[DataRequired()])

帖子由“用户”模型中的函数blog_posts()返回

def blog_posts(self):
        return Post.query.order_by(Post.timestamp.desc())

不确定如何返回与每个帖子相对应的评论。获取帖子后,我的代码调用渲染模板(index.html)。那我怎样才能获得评论并打印出来?请帮助我是初学python开发人员

1 个答案:

答案 0 :(得分:1)

由于您已在relationshipPost之间定义Comment,因此您只需在模板中执行以下操作:

                {% if post.comments %}
                {% if post.comments.count() > 0 %}
                    <h2>Comments</h2>
                    <p>
                    {% for comment in post.comments %}
                        <p>{{ comment.body }}</p>
                    {% endfor %}
                    </p>
                {% endif %}
                {% endif %}