之前我们已经完成了博客管理项目的搭建,同时我们也实现了用户的登录与注册模块的设计,现在我们就可以来实现项目中的发帖和评论模块的功能了。
与一般的思路完全相同,第一步建立模型类,实现与数据库的交互;第二步编写视图函数,实现后端逻辑功能,将数据数据处理后传入前端;第三步创建前端模板,对数据进行渲染,最后进行展示。
1、创建模型类(帖子模型与评论模型),并创建form类
models.py
#定义帖子类
class Post(db.Model):
__tablename__ = 'posts'
id = db.Column(db.Integer,primary_key=True)
title = db.Column(db.String)
body = db.Column(db.String)
created = db.Column(db.DateTime,index=True,default=datetime.datetime.now())
comments = db.relationship('Comment',backref='post')
author_id = db.Column(db.Integer,db.ForeignKey('users.id'))
@staticmethod
def on_body_changed(target, value, oldvalue, initiator):
if value is None or (value is ''):
target.body_html = ''
else:
target.body_html = markdown(value)
#定义评论类
db.event.listen(Post.body,'set',Post.on_body_changed)
class Comment(db.Model):
__tablename__ = 'comments'
id = db.Column(db