python - 在flask模版中对flask-sqlalchemy的pagination分页对象进行if判定有什么作用?

 Rocky柱子 发布于 2022-10-28 15:21

在学习Flask过程中,书中的示例在index.html模版中对pagination分页对象进行了if判定,如下:

{% if pagination %}

{{ macros.pagination_widget(pagination, 'main.index') }}

{% 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判定到底有什么用?

1 个回答
  • if 判定是因为render_template可以不用传pagination进入模板,如果没有传pagination的话,就不渲染分页导航条。

    2022-10-29 17:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有