Пагинация, авторизация. bottle - Python

Узнай цену своей работы

Формулировка задачи:

Всем привет. Делаю свой первый полноценный сайт(блог). Использую микрофреймворк bottle. Нужно реализовать: 1. Пагинцию на главной странице. Как это сделать? отфильтровать через sql запрос или же писать код в самом приложении? 2. Авторизации как такого не будет, но нужно поставить под пароль админку. А. и еще. bottle_sqlite выдает предупреждение.
bottle_sqlite.py:105: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead argspec = inspect.getargspec(_callback)
Что это такое и чем оно грозит? Насколько я понял функция getargspec() устарела, и рекомендуют использовать новую. Вот кусок кода.
Помогите разобраться.

Решение задачи: «Пагинация, авторизация. bottle»

textual
Листинг программы
@route('/')
@route('/page/<page_id:int>')
def index(db, page_id=1):
    from math import ceil
    cur = db.execute('SELECT * FROM post ORDER BY id DESC')
    count = cur.fetchall()
    all_pages = int(ceil(len(count) / 2))
    pages = [x for x in range(1, (len(count) + 1))]
    per_page = [x for x in range(0, (len(count) * 2 - 2) + 1, 2)]
    limit_pages = dict(zip(pages, per_page))
 
    if page_id in limit_pages.keys():
        limit = limit_pages.get(page_id)
    else:
        return abort(404)
 
    cur = db.execute('SELECT * FROM post ORDER BY id DESC LIMIT {}, 2'.format(limit))
    rows = cur.fetchall()
    
    if page_id > all_pages or page_id <= 0:
        return abort(404)
    else:
        next_page = page_id + 1
        prev_page = page_id - 1
        return template('index', 
            url=url, 
            next_page=next_page, 
            prev_page=prev_page, 
            rows=rows, 
            title='Главная')

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы