flask中用paginate可實現數據分頁效果,首先梳理一下paginate的知識點。
1.paginate的用法
paginate(page, per_page, error_out=True)
>>>page 當前頁數
>>>per_page 每頁顯示的條數
>>>error_out 是否打印錯誤信息
2.paginate的屬性
a)paginate.page 當前頁數
b)paginate.pages 總頁數
c)paginate.total 數據總條數
d)paginate.has_prev 是否存在上一頁
返回布爾值
e)paginate.has_next 是否存在下一頁
返回布爾值
f)paginate.iter_pages() 所有頁碼
返回列表 如[1, 2, 3, 4]
g)paginate(page, per_page,error_out).items
返回當前頁的所有數據
實例
a)視圖
@user.route('/manage', methods=['GET', 'POST']) def manage(): ... page = int(request.args.get('page', 1)) paginate = User.query.join(UserDetail, User.user_id == UserDetail.user_id).filter( User.username.like("%{}%".format(username)) if username is not None else '', User.user_type == user_type).paginate(page, PER_PAGE, False) if paginate.items: return render_template('memberManage.html', data=paginate.items, paginate=paginate) else: return render_template('empty.html', post_type=type_name)
b)html頁面解析數據
... <div class="inline-block vertical-middle m-right-xs"> Page {{ paginate.page }} of {{ paginate.pages }} </div> <ul class="pagination vertical-middle ajax_fPage"> {% if paginate.has_prev %} <li class="" data-toggle="tooltip" title="首頁"><a href="{{ url_for('user.manage') }}?page=1"> <i class="fa fa-step-backward"></i> </a> </li> <li class="" data-toggle="tooltip" title="上一頁"> <a href="{{ url_for('user.manage') }}?page={{ paginate.prev_num }}"> <i class="fa fa-caret-left large"></i> </a> </li> {% else %} <li class="disabled" data-toggle="tooltip" title="首頁"> <a href="#"> <i class="fa fa-step-backward"></i> </a> </li> <li class="disabled" data-toggle="tooltip" title="上一頁"> <a href="#"> <i class="fa fa-caret-left large"></i> </a> </li> {% endif %} {% if paginate.has_next %} <li data-toggle="tooltip" title="下一頁"> <a href="{{ url_for('user.manage') }}?page={{ paginate.next_num }}"> <i class="fa fa-caret-right large"></i></a></li> <li data-toggle="tooltip" title="尾頁"> <a href="{{ url_for('user.manage') }}?page={{ paginate.pages }}"> <i class="fa fa-step-forward"></i> </a> </li> {% else %} <li class="disabled" data-toggle="tooltip" title="下一頁"> <a href="#"> <i class="fa fa-caret-right large"></i> </a> </li> <li class="disabled" data-toggle="tooltip" title="尾頁"> <a href="#"><i class="fa fa-step-forward"></i></a> </li> {% endif %} ...
大功告成