Flaskでブログトップページを作成する分類機能(二)
1410 ワード
Flaskでブログトップページの分類機能(一)を作成した上で、次のチュートリアルに進みます.
投稿時には、データベース内のCategoryテーブルのtagと比較するラベル(tag)が追加されます.このtagがすでに存在する場合は、新しく投稿されたtagを既存のテーブルに対応させる必要があります.存在しない場合はcategoryテーブルを新規作成します.
まずpython shellで操作を行います.
問題がなければ、ビュー関数にこの機能を追加します.
投稿時には、データベース内の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)