Flaskでブログトップページを作成する分類機能(二)

1410 ワード

Flaskでブログトップページの分類機能(一)を作成した上で、次のチュートリアルに進みます.
投稿時には、データベース内のCategoryテーブルのtagと比較するラベル(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)