Dinxor, а без разницы через аргумент передавать page=5 или /page/5/ - это не имеет значения.
Мне кажется, что вы что-то не то делаете. Если в вашем приложении есть база данных, например sql, то используют flask sqlalchemy в которой пагинация работает из коробки. Если база монго, то используют, например, mongoengine, в которой тоже из коробки работает это дело и т.д. Никто не пишет пагинацию руками.
Как вариант - это посмотреть как реализовано во flask admin и сделать так же. https://github.com/flask-admin/flask-admin/blob/ma...
Там тоже есть фильтры, но все корректно работает и нет таких ситуаций, которые вы описали.
Идея сначала узнать структуру, а потом городить огород, в голову не приходила?
А это бывает не всегда возможно. Структура приходит из ООО "Мышкин и Шишкин". Сегодня они одно поле добавили, а завтра другое убрали. И при этом ничего не должно сломаться.
Для таких вот задач мне нравится mongoengine с динамическими документами и динамическими полями, это позволяет работать с любыми json с любой неопределенной структурой. https://docs.mongoengine.org/guide/defining-docume...