def videos(): vs = Video.objects() page = request.args.get('page', 1, type=int) paginated_videos = vs.paginate(page=page, per_page=current_app.config['PIC_PER_PAGE']) current_page = paginated_videos.page total_page = paginated_videos.pages page_start = 1 page_end = 5 if total_page < 5: page_end = total_page else: page_start = current_page - 2 page_end = current_page + 2 if page_start < 1: page_start = 1 page_end = 5 if page_end > total_page: page_start = total_page - 4 page_end = total_page url_list = [] for p in range(1, total_page + 1): # so page number start from 1 url = url_for('main.videos', page=p) url_list.append(url) return render_template('main/videos.html', videos=paginated_videos.items, current_page=current_page, total_page=total_page, page_start=page_start, page_end=page_end, url_list=url_list)