O balão usa paginar para implementar a paginação de dados (2)

1, a função de visualização de aquisição de dados

# Obter a lista de utilizador 
@ pawnxc.route ( " / USER_LIST " , Métodos = [ " GET " , " POST " ])
 DEF USER_LIST (): 
    Página = request.args.get ( ' Página ' ., 1, type = int) 
    a paginação Pawn_dl.query.order_by = (Pawn_dl.ssfj.asc ()). o paginate (Página, per_page = 20 é, error_out = False) 
    Usuários = pagination.items
     # obter uma área listando 
    FJS = PawnFj.query.order_by (PawnFj.fjdm)
     # Converter objeto de resultado da consulta em dados do dicionário 
    ssfj_list = []
    se fjs:
         para fj em fjs: 
            ssfj_list.append (fj.to_dict ()) 
    retorne render_template ( ' user_list.html ' , users = users, ssfj_list = ssfj_list, paginação = paginação)

Obtenha o número da página (request.args) dos parâmetros de solicitação.Se não for especificado explicitamente, a primeira página será renderizada por padrão.

O tipo de parâmetro = int garante que quando o parâmetro não puder ser convertido em um número inteiro, o valor padrão seja retornado.

Para exibir os registros em uma página, substitua all () pelo método paginate () fornecido pelo Flask-SQLAlchemy.

O número de páginas é o primeiro parâmetro do método paginate () e o único parâmetro necessário.

O parâmetro opcional per_page é usado para especificar o número de registros exibidos por página; se não especificado, 20 registros são exibidos por padrão.

Outro parâmetro opcional é error_ out, quando definido como True (o valor padrão), se o número solicitado de páginas exceder o intervalo, um erro 404 será retornado; se definido como False, uma lista vazia será retornada quando o número de páginas exceder o intervalo .

  O valor de retorno do método paginate () é um objeto de classe Pagination, definido em Flask-SQLAlchemy. Este objeto contém muitos atributos que são usados ​​para gerar links de paginação no modelo; portanto, ele é passado para o modelo como um parâmetro.

2. Modelo de paginação (flask_pagination.html):

<! - 以 Jinja2 导航 的 分页 以-> 
{% macro pagination_widget (paginação, ponto de extremidade)%} 
< ul class = "pagination" > 
    < li > {% se não for pagination.has_prev%} {% endif %}
         < a href = "{% if pagination.has_prev%} {{url_for (endpoint, page = pagination.page - 1, ** kwargs)}} 
            {% else%} # {% endif%}" > & laquo; 
        </ a > 
    </ li > 
    {% para p em pagination.iter_pages ()%} 
    {% se p%} 
    {% se p == pagination.page%} 
    <> 
        < A href = "{{url_for (endpoint, página = P, ** kwargs)}}" > {{p}} </ a > 
    </ li > 
    {% else%} 
    < li > 
        < a href =" {{url_for (ponto final, página = p, ** kwargs)}} " > {{p}} </ a > 
    </ li > 
    {% endif%} 
    {% else%} 
    < li class =" disabled " > 
        < a href = "#" > & hellip; <
    > 
    {% endif%} 
    {% endfor%} 
    < li > {% se não for pagination.has_next%} {% endif%}
         < a href = "{% if pagination.has_next%} {{url_for (endpoint, page = pagination .page + 1, ** kwargs)}} {% else%} # {% endif%} " > & raquo; </ a > 
    </ li > 
</ ul > 
{% endmacro%}

3. Introduza este modelo no arquivo HTML que precisa de paginação:

        {% import "flask_pagination.html" como macros%} 
        {% if pagination%} 
            < div class = "pagination" > 
                {{macros.pagination_widget (paginação, '.user_list')}} 
            </ div > 
        {% endif%}

 

Acho que você gosta

Origin www.cnblogs.com/hzjdpawn/p/12687127.html
Recomendado
Clasificación