2015-02-09 3 views
1

Я только начал играть с python для создания веб-страниц. На данный момент я использую Mako и CherryPy для создания локального сервера для проверки всего, что я пишу.Как сделать разбиение на страницы в python mako

Я добавил страницу поиска для моей базы данных, и она может производить любое количество результатов от 0 до многих, поэтому лучший способ отображения - это разбиение на страницы. Я был беглый взгляд онлайн и единственная помощь, которую я могу найти эту веб-страницу: http://makoframework.com/docs/3.6/learn-more:pagination

Проблема заключается в том, я не понимаю, что это показывает, до сих пор я только использую Mako для входных переменных в HTML с ${variable} обозначение.

Я надеялся, что кто-то более опытный может показать мне и пример и объяснить, как и что это делает, поскольку я не могу найти примеры в Интернете.

Спасибо заранее!

ответ

1

Во-первых, я надеюсь, что мы оба знаем, что ваш пример ссылки приводит к сайту PHP с таким же именем, Mako.

Для разбивки на страницы вам нужно реализовать два метода для сущности (или таблицы для простоты). В простом случае сначала count(), который возвращает количество записей, а второй - list(page, itemsPerPage), который возвращает записи для данной страницы.

Затем вам нужно решить, какой стиль таргетинга вы предпочитаете. Существует несколько общих стилей. Например. скольжения стиль выглядит следующим образом:

[1] 2 3 4 » → 
← « 1 [2] 3 4 » → 
← « 2 [3] 4 5 » → 
← « 3 [4] 5 6 » → 
← « 4 [5] 6 7 » → 
← « 4 5 [6] 7 » → 
← « 4 5 6 [7] 

Как вы уже видели в шаблоне сниппета на странице вы связаны, шаблон нумерации страниц ожидает несколько значений, например, текущую страницу, страницы для родных, первую страницу, последнюю страницу и т. д. Таким образом, вам нужно рассчитать эти значения, имеющие общее количество записей, текущую страницу, количество записей на странице и стиль разбивки на страницы. Реализация довольно простая математика.

В то время, когда мне был нужен такой простой расчет страниц, я не нашел его в магазине сыра. Были только сложные вещи, которые пытались сделать много вещей, кстати, о которых я не спрашивал. Поэтому я написал PageCalc, который делает такое простое вычисление для пары стилей разбиения на страницы. Также есть CherryPy example app, который использует Jina2, хотя его легко переключить в Mako, если хотите.

+0

Извините, я был таким отчаянным, что был готов найти что-нибудь с Мако. Я не на своем компьютере, над которым эта работа работает, но я буду отмечать ваш ответ, как только я доберусь до него. – Grailor

+0

Это сработало - спасибо за объяснение! Принято как ответ – Grailor

Смежные вопросы