Skip to content

Instantly share code, notes, and snippets.

@geekgogo
Created April 15, 2020 09:59
Show Gist options
  • Save geekgogo/3d305415308b836d39a19c35d07b92eb to your computer and use it in GitHub Desktop.
Save geekgogo/3d305415308b836d39a19c35d07b92eb to your computer and use it in GitHub Desktop.
使用jinja模板动态实现5个分页
<ul>
<li><a href="/m/news/1">首页</a></li>
<!-- 始终显示5个页面 -->
<!-- 页面数小于5个时 -->
{% if pages < 5 %}
{% for i in range(len(pages)) %}
<li><a href="/m/news/{{ i + 1 }}">{{ i + 1 }}</a></li>
{% endfor %}
<!-- 页面数大于5个时 -->
{% else %}
<!-- 判断当前页 -->
{% if current_page < 3 %}
<!-- 前面保持固定5个分页 -->
{% for i in range(5) %}
<li><a href="/m/news/{{ i + 1 }}">{{ i + 1 }}</a></li>
{% endfor %}
{% else %}
<!-- 如果剩余页面大于两个 -->
{% if pages - current_page > 2 %}
<!-- 前面保持前两个页面 -->
<li><a href="/m/news/{{ current_page - 2 }}">{{ current_page - 2 }}</a></li>
<li><a href="/m/news/{{ current_page - 1 }}">{{ current_page - 1 }}</a></li>
<!-- 分割 -->
<li><a href="/m/news/{{ current_page }}">{{ current_page }}</a></li>
<!-- 后面保持两个页面 -->
<li><a href="/m/news/{{ current_page + 1 }}">{{ current_page + 1 }}</a></li>
<li><a href="/m/news/{{ current_page + 2 }}">{{ current_page + 2 }}</a></li>
{% else %}
<!-- 如果剩余页面小于两个 需要总共保持5个页面-->
{% for i in range(pages - 4, pages + 1) %}
<li><a href="/m/news/{{ i }}">{{ i }}</a></li>
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
<li><a href="/m/news/{{pages}}">尾页</a></li>
<li>共 {{pages}}页{{all_news}}条</li>
</ul>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment