[英]How to add comments feature to posts in a flask web application
I am developing a web application with Flask.I am confused how to add comment feature to posts in a web application. 我正在用Flask开发Web应用程序。我很困惑如何在Web应用程序中为帖子添加评论功能。 Parts of my database models are a give below
我的数据库模型的部分内容如下
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)
And post and comment forms as 并张贴和评论表格为
class PostForm(Form):
post = StringField('post', validators=[DataRequired()])
title = StringField('title', validators=[DataRequired()])
class CommentForm(Form):
comment = StringField('post', validators=[DataRequired()])
The posts are returned by a function blog_posts() in 'User' model 这些帖子由“用户”模型中的Blog_posts()函数返回
def blog_posts(self):
return Post.query.order_by(Post.timestamp.desc())
Not sure how to return the comments corresponding to each post. 不确定如何返回与每个帖子相对应的评论。 After getting posts my code calls render template(index.html).
得到帖子后,我的代码调用了render template(index.html)。 Then how can I obtain comments and print them?.
那我如何获得评论并打印呢? Please help I am a beginner python developer
请帮助我是初学者python开发人员
Since you've defined the relationship
between Post
and Comment
, you can simply do something like the following in your template: 由于已经定义了
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 %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.