如何在 Flask Web 应用程序中向帖子添加评论功能
How to add comments feature to posts in a flask web application
我正在使用 Flask.I 开发 Web 应用程序,我很困惑如何在 Web 应用程序中向 post 添加评论功能。我的部分数据库模型如下所示
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)
和post以及评论形式为
class PostForm(Form):
post = StringField('post', validators=[DataRequired()])
title = StringField('title', validators=[DataRequired()])
class CommentForm(Form):
comment = StringField('post', validators=[DataRequired()])
post由'User'模型
中的函数blog_posts()return编辑
def blog_posts(self):
return Post.query.order_by(Post.timestamp.desc())
不确定如何 return 每个 post 对应的评论。获得 posts 后,我的代码调用渲染模板 (index.html)。那我怎样才能获得评论并打印出来呢?。请帮助我是初学者python开发者
由于您已经在 Post
和 Comment
之间定义了 relationship
,您只需在模板中执行如下操作即可:
{% 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 %}
我正在使用 Flask.I 开发 Web 应用程序,我很困惑如何在 Web 应用程序中向 post 添加评论功能。我的部分数据库模型如下所示
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)
和post以及评论形式为
class PostForm(Form):
post = StringField('post', validators=[DataRequired()])
title = StringField('title', validators=[DataRequired()])
class CommentForm(Form):
comment = StringField('post', validators=[DataRequired()])
post由'User'模型
中的函数blog_posts()return编辑def blog_posts(self):
return Post.query.order_by(Post.timestamp.desc())
不确定如何 return 每个 post 对应的评论。获得 posts 后,我的代码调用渲染模板 (index.html)。那我怎样才能获得评论并打印出来呢?。请帮助我是初学者python开发者
由于您已经在 Post
和 Comment
之间定义了 relationship
,您只需在模板中执行如下操作即可:
{% 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 %}