关于python:学习Flask之分页插件flaskbootstrap

50次阅读

共计 2860 个字符,预计需要花费 8 分钟才能阅读完成。

{# This file was part of Flask-Bootstrap and was modified under the terms of
its BSD License. Copyright (c) 2013, Marc Brinkmann. All rights reserved. #}
{% macro render_pager(pagination,

                  fragment='',
                  prev=('<span aria-hidden="true">&larr;</span> Previous')|safe,
                  next=('Next <span aria-hidden="true">&rarr;</span>')|safe,
                  align='') -%}
<nav aria-label="Page navigation">
    <ul class="pagination {% if align =='center'%}justify-content-center{% elif align =='right'%}justify-content-end{% endif %}">
        <li class="page-item {% if not pagination.has_prev %}disabled{% endif %}">
            <a class="page-link"
               href="{{url_for(request.endpoint, page=pagination.prev_num, **kwargs) + fragment if pagination.has_prev else'#'}}">
                {{prev}}
            </a>
        </li>
        <li class="page-item {% if not pagination.has_next %}disabled{% endif %}">
            <a class="page-link"
               href="{{url_for(request.endpoint, page=pagination.next_num, **kwargs) + fragment if pagination.has_next else'#'}}">
                {{next}}
            </a>
        </li>
    </ul>
</nav>

{%- endmacro %}
{% macro _arg_url_for(endpoint, base) %}

{# calls url_for() with a given endpoint and **base as the parameters,

additionally passing on all keyword_arguments (may overwrite existing ones)
#}

{%- with kargs = base.copy() -%}
    {%- do kargs.update(kwargs) -%}
    {{url_for(endpoint, **kargs) }}
{%- endwith %}

{%- endmacro %}
{% macro render_pagination(pagination,

                       endpoint=None,
                       prev=('&laquo;')|safe,
                       next=('&raquo;')|safe,
                       size=None,
                       ellipses='…',
                       args={},
                       fragment='',
                       align=''
                       )-%}
{% if fragment != ''and not fragment.startswith('#') %}{% set fragment ='#' + fragment %}{% endif %}
{% with url_args = {} %}
    {%- do url_args.update(request.view_args if not endpoint else {}),
   url_args.update(request.args if not endpoint else {}),
   url_args.update(args) -%}
    {% with endpoint = endpoint or request.endpoint %}
        <nav aria-label="Page navigation">
            <ul class="pagination{% if size %} [PM](https://www.gendan5.com/wallet/PerfectMoney.html)pagination-{{size}}{% endif %} {% if align =='center'%}justify-content-center{% elif align =='right'%}justify-content-end{% endif %}"{{kwargs|xmlattr}}>
                {# prev and next are only show if a symbol has been passed. #}
                {% if prev != None -%}
                    <li class="page-item {% if not pagination.has_prev %}disabled{% endif %}">
                        <a class="page-link" href="{{_arg_url_for(endpoint, url_args, page=pagination.prev_num) if pagination.has_prev else'#'}}{{fragment}}">{{prev}}</a>
                    </li>
                {%- endif -%}

                {%- for page in pagination.iter_pages() %}
                    {% if page %}
                        {% if page != pagination.page %}
                            <li class="page-item">
                                <a class="page-link" href="{{_arg_url_for(endpoint, url_args, page=page) }}{{fragment}}">{{page}}</a>
                            </li>
                        {% else %}
                            <li class="page-item active">
                                <a class="page-link" href="#">{{page}} <span class="sr-only">(current)</span></a>
                            </li>
                        {% endif %}
                    {% elif ellipses != None %}
                        <li class="page-item disabled"><a class="page-link" href="#">{{ellipses}}</a></li>
                    {% endif %}
                {%- endfor %}

                {% if next != None -%}
                    <li class="page-item {% if not pagination.has_next %}disabled{% endif %}">
                        <a class="page-link" href="{{_arg_url_for(endpoint, url_args, page=pagination.next_num) if pagination.has_next else'#'}}{{fragment}}">{{next}}</a>
                    </li>
                {%- endif -%}
            </ul>
        </nav>
    {% endwith %}
{% endwith %}

{% endmacro %}

正文完
 0