
第 11章
博客文章
本章将实现
Flasky
的主要功能,即允许用户阅读和撰写博客文章。本章将教你一些新技
术:重用模板、分页显示长列表,以及处理富文本。
11.1
提交和显示博客文章
为支持博客文章,我们需要创建一个新的数据库模型,如示例
11-1
所示。
示例
11-1
app/models.py
:
Post
模型
class Post(db.Model):
__tablename__ = 'posts'
id = db.Column(db.Integer, primary_key=True)
body = db.Column(db.Text)
timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
author_id = db.Column(db.Integer, db.ForeignKey('users.id'))
class User(UserMixin, db.Model):
# ...
posts = db.relationship('Post', backref='author', lazy='dynamic')
博客文章包含正文、时间戳以及和 User 模型之间的一对多关系。body 字段的类型是
db.Text,所以不限制长度。
应用的首页要显示一个表单,让用户撰写博客。这个表单很简单,只包括一个多行文本输
入框,用于输入博客文章的内容,另外还有一个提交按钮。表单定义如示例
11-2
所示。 ...