2018年3月27日火曜日

Python+Flaskに、ORMのSQLAlchemyを設定、ページ送り(paginate)

Python+Flaskに、ORMのSQLAlchemyを設定、ページ送り(paginate)です。気をつける点としては、表示する際に、取得したページオブジェクトのitems属性を利用することでしょうか。あとは、なんとなく理解できます。

@app.route('/page/<int:page>', methods=['GET'])
def paging(page=1):
  per_page = 10
  entries = Entry.query.order_by(Entry.id).paginate(page, per_page, error_out=False)
  return render_template('page.html', entries=entries)
{% for entry in entries.items %}
  <a href="{{ url_for('show_blog', id=entry.id) }}">{{ entry.title }}</a>
  {{ entry.text|safe }}
{% endfor %}

{% if entries.has_prev %}
  <a href="{{ url_for('paging', page=entries.prev_num) }}"><< 前のページ</a>
{% else %}
  << 前のページ
{% endif %}
 |
{% if entries.has_next %}
  <a href="{{ url_for('paging', page=entries.next_num) }}">次のページ >></a>
{% else %}
  次のページ >>
{% endif %}

実際に設定してみたのがこちら

参考サイト
The Flask Mega-Tutorial Part IX: Pagination(miguelgrinberg.com)

0 件のコメント:

コメントを投稿