Flask中制作博客首页的分类功能(二)

在Flask中制作博客首页的分类功能(一)的基础上,继续下面的教程。

发布文章的时候会为文章添加一些标签(tag),这些tag需要和数据库中Category表的tag进行比较,如果已经存在该tag,那么需要将新发表文章的tag与已存在的表格进行对应,如果不存在则要新建一个category表。

首先在python shell中执行操作。

from sql_test import db, Post, Category
category = Category.query.filter_by(tag='Python').first()
category -->  # 查询到tag=‘Python’的表
category.count += 1
pp = Post(title='hello one', body='hello hello', category=category) #新建post表与原先的category对应
db.session.add(pp)
db.session.commit() 

没有问题之后在视图函数中增加该功能:

@main.route('/write', methods=['GET', 'POST'])
@login_required
def write():
    form = PostForm()
    category = Category.query.filter_by(tag=form.category.data).first()
    if form.validate_on_submit():
        if category:
            category.count += 1
            post = Post(title=form.title.data, body=form.body.data,
                        summary=form.summary.data, category=category)
        else:
            post = Post(title=form.title.data, body=form.body.data,
                        summary=form.summary.data, category=Category(form.category.data))
        db.session.add(post)
        flash('You have posted a blog')
        return redirect(url_for('main.post', title=post.title))
    return render_template('write.html', form=form)

你可能感兴趣的:(Flask中制作博客首页的分类功能(二))