本文主要是介绍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 --> <Category 'Python'> # 查询到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 += 1post = 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中制作博客首页的分类功能(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!