Как осуществить перемещение по страницам в блоге на Flask, сохраняя поисковой запрос?

Мне надо перемещаться по списку постов, отсортированных по поиску, но я не знаю, как сохранять запрос (перемещение сделано с помощью pagination)

(blueprint.py)

@posts.route('/')
def index():
    q = request.args.get('q')

    page = request.args.get('page')

    if page and page.isdigit():
        page = int(page)
    else:
        page = 1

    if q:
        posts = Post.query.filter(Post.title.contains(q) | Post.body.contains(q))
    else:
        posts = Post.query.order_by(Post.created.desc())

    pages = posts.paginate(page=page, per_page=5)

    return render_template('posts/index.html', posts=posts, pages=pages, q=q)

(posts/index.html)

{% extends 'base.html' %}

{% block title %}

    Blueprint page

{% endblock %}

{% block content_title %}

    Posts{% if q %} for "{{ q }}" search:{% endif %}

{% endblock %}

{% block content %}

    {% for post in pages.items %}

        <p>
            <a href="{{ url_for('posts.post_detail', slug=post.slug) }}">{{ post.title }}</a>
        </p>

    {% endfor %}

    <nav>
        <ul class="pagination">
          <li class="page-item {% if not pages.has_prev %} disabled {% endif %}">
            <a class="page-link" href="./?page={{ pages.prev_num }}" aria-label="Previous">
              <span aria-hidden="true">&laquo;</span>
            </a>
          </li>

          {% for page in pages.iter_pages() %}

            <li class="page-item {% if page == pages.page %} active {% endif %}">
                <a class="page-link" href="./?page={{ page }}">{{ page }}</a>
            </li>

          {% endfor  %}

          <li class="page-item {% if not pages.has_next %} disabled {% endif %}">
            <a class="page-link" href="./?page={{ pages.next_num }}" aria-label="Next">
              <span aria-hidden="true">&raquo;</span>
            </a>
          </li>
        </ul>
      </nav>

{% endblock %}

Возможно, это надо сделать с помощью href="./?page={{ page }}/?q={{ q }}" , но вроде это не работает.


Ответы (0 шт):