python - 在flask模版中对flask-sqlalchemy的pagination分页对象进行if判定有什么作用?
本文介绍了python - 在flask模版中对flask-sqlalchemy的pagination分页对象进行if判定有什么作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在学习Flask过程中,书中的示例在index.html
模版中对pagination分页对象进行了if判定,如下:
{% if pagination %}
<div class="pagination">
{{ macros.pagination_widget(pagination, 'main.index') }}
</div>
{% endif %}
中间引用的宏是用来实现分页导航条的。
在主页的视图文件中生成的flask对象:
@main.route('/', methods=['GET', 'POST'])
def index():
# ...
# page参数是get请求的参数,含义是当前请求的第几页
page = request.args.get('page', 1, type=int)
pagination = Post.query.order_by(Post.timestamp.desc()).paginate(
page, per_page=current_app.config['BLOG_POSTS_PER_PAGE'], error_out=True)
posts = pagination.items
return render_template('index.html', form=form, posts=posts, pagination=pagination)
我现在不懂的是,在index.html
模版中对pagination分页对象进行if判定有什么作用?
一开始认为是当Post表记录为0时不再渲染分页导航条,但尝试了一把发现导航条依然被渲染了,也就是说if判定的结果是True;同时打印pagination类型也表明,即便记录数为0,pagination仍然是一个flask_sqlalchemy.Pagination
对象,不是None值。
所以,请教各位,这里的if判定到底有什么用?
解决方案
if 判定是因为render_template可以不用传pagination进入模板,如果没有传pagination的话,就不渲染分页导航条。
这篇关于python - 在flask模版中对flask-sqlalchemy的pagination分页对象进行if判定有什么作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文