deepseek给的分页方案

简介: 基于Django框架实现订单分页功能,结合Bootstrap样式展示分页导航。支持上/下一页、当前页高亮及动态页码范围显示,并统计总页数与每页数据量,提升用户浏览体验。
<!----------------------
#分页功能模板使用bootstrap样式,需要的地方直接引入{ % include 'page_templates.html' % }
views页面
def order_page_view(request):
    # deepseek给的分页方案
    object_list = models.Order.objects.all()
    n = 10                                     # 每页显示10条
    paginator = Paginator(object_list, n)      # 分页设置
    page_number = request.GET.get('page')      # 当前页码
    page_obj = paginator.get_page(page_number) # 当前页对象
    return render(request, 'order_page_view.html', locals())
# 调用时:
# 当前页对象: page_obj
# 当前页码: page_obj.number
# 总页数: page_obj.paginator.num_pages
# 当前页数据: page_obj.object_list
--------------->
{% if page_obj.has_other_pages %}
<nav aria-label="Page navigation">
        <ul class="pagination">
            {# 上一页 #}
            {% if page_obj.has_previous %}
<li class="page-item">
                    <a class="page-link" href="?page={{ page_obj.previous_page_number }}"
                       aria-label="Previous">
                        <span aria-hidden="true">&laquo;</span>
                    </a>
                </li>
            {% else %}
<li class="page-item disabled">
                    <a class="page-link" href="#" aria-label="Previous">
                        <span aria-hidden="true">&laquo;</span>
                    </a>
                </li>
            {% endif %}
{# 页码显示逻辑 #}
            {% with total_pages=page_obj.paginator.num_pages current_page=page_obj.number %}
{# 计算起始和结束页码 #}
                {% if total_pages <= 9 %}
                    {% with start_page=1 end_page=total_pages %}
                        {% for page in page_obj.paginator.page_range %}
                            {% if page == current_page %}
<li class="page-item active">
                                    <span class="page-link">{{ page }}</span>
                                </li>
                            {% else %}
<li class="page-item">
                                    <a class="page-link" href="?page={{ page }}">{{ page }}</a>
                                </li>
                            {% endif %}
                        {% endfor %}
                    {% endwith %}
                {% else %}
{# 正常情况:当前页前后各显示4个页码 #}
                    {% with start_page=current_page|add:"-4" end_page=current_page|add:"4" %}
{# 调整起始页码 #}
                        {% if start_page < 1 %}
                            {% with start_page=1 end_page=9 %}
                                {% for page in page_obj.paginator.page_range %}
                                    {% if page >= start_page and page <= end_page %}
                                        {% if page == current_page %}
<li class="page-item active">
                                                <span class="page-link">{{ page }}</span>
                                            </li>
                                        {% else %}
<li class="page-item">
                                                <a class="page-link" href="?page={{ page }}">{{ page }}</a>
                                            </li>
                                        {% endif %}
                                    {% endif %}
                                {% endfor %}
                            {% endwith %}
                        {% elif end_page > total_pages %}
                            {% with start_page=total_pages|add:"-8" end_page=total_pages %}
                                {% for page in page_obj.paginator.page_range %}
                                    {% if page >= start_page and page <= end_page %}
                                        {% if page == current_page %}
<li class="page-item active">
                                                <span class="page-link">{{ page }}</span>
                                            </li>
                                        {% else %}
<li class="page-item">
                                                <a class="page-link" href="?page={{ page }}">{{ page }}</a>
                                            </li>
                                        {% endif %}
                                    {% endif %}
                                {% endfor %}
                            {% endwith %}
                        {% else %}
{# 正常范围 #}
                            {% for page in page_obj.paginator.page_range %}
                                {% if page >= start_page and page <= end_page %}
                                    {% if page == current_page %}
<li class="page-item active">
                                            <span class="page-link">{{ page }}</span>
                                        </li>
                                    {% else %}
<li class="page-item">
                                            <a class="page-link" href="?page={{ page }}">{{ page }}</a>
                                        </li>
                                    {% endif %}
                                {% endif %}
                            {% endfor %}
                        {% endif %}
                    {% endwith %}
                {% endif %}
            {% endwith %}
{# 下一页 #}
            {% if page_obj.has_next %}
<li class="page-item">
                    <a class="page-link" href="?page={{ page_obj.next_page_number }}" aria-label="Next">
                        <span aria-hidden="true">&raquo;</span>
                    </a>
                </li>
            {% else %}
<li class="page-item disabled">
                    <a class="page-link" href="#" aria-label="Next">
                        <span aria-hidden="true">&raquo;</span>
                    </a>
                </li>
            {% endif %}
<li class="page-item disabled">
                <span aria-hidden="true">本页{{ page_obj|length }}条,共{{ page_obj.paginator.num_pages }}</span>
            </li>
        </ul>
        <ul>
        </ul>
    </nav>
{% endif %}
目录
相关文章
|
4天前
|
机器学习/深度学习 人工智能 算法
新能源电池寿命预测模型
新能源电池寿命预测模型
75 11
|
2天前
|
人工智能 运维 前端开发
Claude Code 30k+ star官方插件,小白也能写专业级代码
Superpowers是Claude Code官方插件,由核心开发者Jesse打造,上线3个月获3万star。它集成brainstorming、TDD、系统化调试等专业开发流程,让AI写代码更规范高效。开源免费,安装简单,实测显著提升开发质量与效率,值得开发者尝试。
|
18天前
|
人工智能 安全 API
Nacos 安全护栏:MCP、Agent、配置全维防护,重塑 AI Registry 安全边界
Nacos安全新标杆:精细鉴权、无感灰度、全量审计!
399 60
|
14天前
|
设计模式 XML NoSQL
从HITL(Human In The Loop) 实践出发看Agent与设计模式的对跖点
本文探讨在ReactAgent中引入HITL(人机回路)机制的实践方案,分析传统多轮对话的局限性,提出通过交互设计、对话挂起与工具化实现真正的人机协同,并揭示Agent演进背后与工程设计模式(如钩子、适配器、工厂模式等)的深层关联,展望未来Agent的进化方向。
342 44
从HITL(Human In The Loop) 实践出发看Agent与设计模式的对跖点
|
24天前
|
监控 安全 Unix
iOS 崩溃排查不再靠猜!这份分层捕获指南请收好
从 Mach 内核异常到 NSException,从堆栈遍历到僵尸对象检测,阿里云 RUM iOS SDK 基于 KSCrash 构建了一套完整、异步安全、生产可用的崩溃捕获体系,让每一个线上崩溃都能被精准定位。
476 62
|
5天前
|
存储 人工智能 前端开发
PinMe:零成本三秒发布你的网站
PinMe是一款零配置、去中心化的前端部署工具,基于IPFS实现静态网站一键发布。无需服务器、域名或复杂配置,支持网页拖拽或命令行上传,自动生成可验证、抗篡改的永久链接。单文件200MB、整站1GB以内免费部署,让发布变得简单、安全、可靠。🚀
98 11
PinMe:零成本三秒发布你的网站
|
29天前
|
存储 SQL Apache
Flink + Fluss 实战: Delta Join 原理解析与操作指南
Flink Delta Join 通过复用源表数据替代本地状态,解决双流 Join 状态膨胀问题。结合 Fluss 流存储,实现高效双向 Lookup,显著降低资源消耗与 Checkpoint 时间,提升作业稳定性与恢复速度,已在阿里大规模落地。
232 25
Flink + Fluss 实战: Delta Join 原理解析与操作指南
|
7天前
|
Linux
Linux系统之cat命令基本使用
Linux系统之cat命令基本使用
131 10
Linux系统之cat命令基本使用

热门文章

最新文章