国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Django】列表數(shù)據(jù)Paginatior分頁,動態(tài)返回頁碼,顯示當前頁、總頁數(shù)、跳轉(zhuǎn)頁

這篇具有很好參考價值的文章主要介紹了【Django】列表數(shù)據(jù)Paginatior分頁,動態(tài)返回頁碼,顯示當前頁、總頁數(shù)、跳轉(zhuǎn)頁。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

問題

1、當返回數(shù)據(jù)較多,如設(shè)置每頁展示10條,數(shù)據(jù)接近200條,返回頁碼范圍1~20,前端每個頁碼都顯示的話,就會出現(xiàn)頁碼超出當前頁面,被遮擋的頁碼無法操作和顯示不美觀;
2、列表的所在頁碼,總分頁數(shù),跳轉(zhuǎn)不在動態(tài)頁面的頁數(shù)

解決

在使用paginator轉(zhuǎn)化為Page對象后,獲取到num_pages:總的頁碼數(shù),配合當前頁碼,進行判斷
顯示列表的所在頁碼,總分頁數(shù),實現(xiàn)跳轉(zhuǎn)不在動態(tài)頁面的頁數(shù)

效果

【Django】列表數(shù)據(jù)Paginatior分頁,動態(tài)返回頁碼,顯示當前頁、總頁數(shù)、跳轉(zhuǎn)頁,django,python,后端

實現(xiàn)

views.py

def api_list(request):
    p_index = int(request.GET.get('page', 1))  # 當前頁碼
    api_list = API_Manage().get_all_api_list()  # 查詢的數(shù)據(jù)

    page_size = 10  # 每頁大小

    # 設(shè)置每頁10條數(shù)據(jù),paginator
    paginator = Paginator(api_list, per_page=page_size)
    # 當前頁碼
    current_page = paginator.get_page(p_index).number
    # 頁面數(shù)據(jù)
    page = paginator.page(p_index)
    # 頁碼超過12頁,進行動態(tài)返回頁碼范圍
    if paginator.num_pages > 12:
        if current_page - 5 < 1:  # 當前頁小于5
            page_range = range(1, 11)
        elif current_page + 5 > paginator.num_pages:  # 當前頁+5大于總頁碼
            page_range = range(current_page - 5, paginator.num_pages + 1)
        else:
            page_range = range(current_page - 5, current_page + 5)
    else:
        page_range = paginator.page_range
    print(page_range)
    data = {'page': page, 'paginator': paginator, 'current_page': current_page, 'page_range': page_range}
    return render(request, 'api_list.html', data)

動態(tài)返回頁碼邏輯:

如果當前頁碼-5,小于1,返回的頁碼范圍: (1,11)

如果當前頁碼-5>1,且當前頁碼+5小于總頁碼,范圍(當前頁碼-5,當前頁碼+5)

如果當前頁碼-5>1,且當前頁碼+5大于總頁碼,范圍(當前頁碼-5,總的頁碼數(shù)+1)

html

<div class="container" id="nav" style="text-align:center;">
    <ul class="pagination" id="page" >
        <li>共{{ paginator.num_pages }}頁/第{{page.number}}頁 跳轉(zhuǎn)到第
            <input type="number" style="width: 50px" min="1" max = {{paginator.num_pages}} value="{{ current_page }}"><button>跳轉(zhuǎn)</button></li>

        {% if page.has_previous %}
            <li class="previous"><a href="{{ request.path }}?page={{ page.previous_page_number }}">上一頁</a></li>
        {% else %}
            <li class="previous disabled"><a href="#">上一頁</a></li>
        {% endif %}
        {% for num in page_range %}
            {% if num == current_page %}
            <li class="active" style="backgroud:#C6E2FF"><a href="{{ request.path }}?page={{ num }}">{{ num }}</a></li>
            {% else %}
            <li class="item"><a href="{{ request.path}}?page={{ num }}">{{ num }}</a></li>
            {% endif %}
        {% endfor %}
        {% if page.has_next %}
            <li class="next"><a href="{{ request.path}}?page={{ page.next_page_number }}">下一頁</a></li>
        {% endif %}
    </ul>
</div>

<script type="text/javascript">
    $('button').click(function () {
        var num = $('input').val();
        console.log(num);
        if(num<=0 || num>{{ paginator.num_pages }}){
            $('input').val('');
        }else{
            window.location.href='{{ request.path}}?page='+num;
        }
    })
</script>
  • 頁碼居中:

div 標簽設(shè)置:style=“text-align:center;”文章來源地址http://www.zghlxwxcb.cn/news/detail-522175.html

  • 頁面跳轉(zhuǎn)
    設(shè)置默認值、最小值、最大值:min=“1” max = {{paginator.num_pages}} value="{{ current_page }}
<li>共{{ paginator.num_pages }}頁/第{{page.number}}頁 跳轉(zhuǎn)到第
            <input type="number" style="width: 50px" min="1" max = {{paginator.num_pages}} value="{{ current_page }}"><button>跳轉(zhuǎn)</button></li>
  • 動態(tài)頁碼
		{% for num in page_range %}
            {% if num == current_page %}
            <li class="active" style="backgroud:#C6E2FF"><a href="{{ request.path }}?page={{ num }}">{{ num }}</a></li>
            {% else %}
            <li class="item"><a href="{{ request.path}}?page={{ num }}">{{ num }}</a></li>
            {% endif %}
        {% endfor %}

到了這里,關(guān)于【Django】列表數(shù)據(jù)Paginatior分頁,動態(tài)返回頁碼,顯示當前頁、總頁數(shù)、跳轉(zhuǎn)頁的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • pagination分頁、頁碼組件(基于element ui組件庫)

    以下@表示路徑別名src,具體可在vue.config.js中配置 具體功能是,當點擊了分頁,獲取表格之后,重新使得滾動條回到初始位置 ,scrollTo(0, 800),參數(shù)0和800表示需要0.8s的時間回到滾動條距離頂部0位置。 template中 data中 methods中 loading為表格加載圈控制 dateRange為表格的搜索參數(shù)

    2024年02月01日
    瀏覽(23)
  • 3. 爬取自己CSDN博客列表(自動方式)(分頁查詢)(網(wǎng)站反爬蟲策略,需要在代碼中添加合適的請求頭User-Agent,否則response返回空)

    3. 爬取自己CSDN博客列表(自動方式)(分頁查詢)(網(wǎng)站反爬蟲策略,需要在代碼中添加合適的請求頭User-Agent,否則response返回空)

    1. 如何爬取自己的CSDN博客文章列表(獲取列表)(博客列表)(手動+python代碼方式) 2. 獲取自己CSDN文章列表并按質(zhì)量分由小到大排序(文章質(zhì)量分、博客質(zhì)量分、博文質(zhì)量分)(阿里云API認證) https://dontla.blog.csdn.net/?type=blog https://blog.csdn.net/community/home-api/v1/get-business-lis

    2024年02月12日
    瀏覽(28)
  • django rest_framework 框架動態(tài)設(shè)置序列化返回的字段

    django rest_framework 框架動態(tài)設(shè)置序列化返回的字段

    動態(tài)修改字段可以使Django rest框架API像graphQL端點一樣,只從模型中檢索所需的字段。 一旦序列化器被初始化,就可以使用.fields屬性訪問序列化器上設(shè)置的字段字典。訪問和修改此屬性允許您動態(tài)修改序列化器。 顯式地修改fields參數(shù)可以幫助您做一些奇怪的事情,例如在運行

    2024年02月16日
    瀏覽(25)
  • Mybatis分頁查詢同時返回總數(shù)和數(shù)據(jù)

    我們在使用Mybatis分頁查詢數(shù)據(jù)列表時,在用戶的一個請求中常常需要同時返回當前頁的列表數(shù)據(jù)以及滿足條件的數(shù)據(jù)總條數(shù)用于分頁。 1)執(zhí)行兩次SQL,一次查列表,一次查總數(shù) ? ? ? 這種方法最簡單,也最容易實現(xiàn)。 2)分頁插件PageHelper ? ? ? 另一種常用的方式就是使用

    2024年02月14日
    瀏覽(26)
  • 后端一次返回大量數(shù)據(jù),前端做分頁處理

    后端一次返回大量數(shù)據(jù),前端做分頁處理

    問題描述:后端接口返回大量數(shù)據(jù),沒有做分頁處理,不支持傳參pageNum,pageSize 本文為轉(zhuǎn)載文章,原文章:后端一次返回大量數(shù)據(jù),前端做分頁處理 1.template中 分頁 對應(yīng)的模型 2.script中 獲取后端數(shù)據(jù) 改變頁數(shù)事件 改變條數(shù)事件

    2024年02月15日
    瀏覽(108)
  • 重構(gòu)優(yōu)化第三方查詢接口返回大數(shù)據(jù)量的分頁問題

    重構(gòu)優(yōu)化第三方查詢接口返回大數(shù)據(jù)量的分頁問題

    # 問題描述 ? ? ?用戶線上查詢其上網(wǎng)流量詳單數(shù)據(jù)加載慢,且有時候數(shù)據(jù)沒有響應(yīng)全~ ? ? ?1、經(jīng)排除是調(diào)用第三方數(shù)據(jù)量達10w條響應(yīng)會超時,數(shù)據(jù)沒正常返回 ? ? ?2、現(xiàn)有線上緩存分頁也是加載慢數(shù)據(jù)不能正常展示 ? ? ?3、第三方接口返回類似報文jsonj: ? ? ? ? ? 4、我

    2024年02月09日
    瀏覽(31)
  • Django和jQuery,實現(xiàn)Ajax表格數(shù)據(jù)分頁展示

    Django和jQuery,實現(xiàn)Ajax表格數(shù)據(jù)分頁展示

    當存在重新請求接口才能返回數(shù)據(jù)的功能時,若頁面的內(nèi)容很長,每次點擊一個功能,頁面又回到了頂部,對于用戶的體驗感不太友好,我們希望當用戶點擊這類的功能時,能直接加載到數(shù)據(jù),請求后端的操作不會呈現(xiàn)在前端,給用戶一種無感知的狀態(tài)。 若希望在不重新加載

    2024年02月08日
    瀏覽(15)
  • Django接口返回JSON格式數(shù)據(jù)報文

    目錄 遇到問題 Django返回json結(jié)構(gòu)報文 不可行方式python json 可行方式JsonResponse+QuerySet.values()。 python的兩個web框架,flask和django,兩者都具有view 模板的章節(jié),但是當前開發(fā)一個應(yīng)用,大部分采用前后端分離的合作方式。因此必然面對的一個事情就是接口返回json格式的數(shù)據(jù)報文。

    2024年02月15日
    瀏覽(24)
  • MybatisPlus使用Left Join...on...一對多多表聯(lián)查和Ipage分頁返回數(shù)據(jù)問題

    MybatisPlus使用Left Join...on...一對多多表聯(lián)查和Ipage分頁返回數(shù)據(jù)問題

    問題: 一對多關(guān)系表使用MybatisPlus的Ipage進行分頁查詢,會先執(zhí)行聯(lián)表查詢sql語句,然后進行分頁。 ?像圖中聯(lián)表查詢一對多關(guān)系,會有多條重復(fù)數(shù)據(jù),使用Ipage分頁會將這10條數(shù)據(jù)返回到xml中resultMap綁定的type。造成一頁展示的數(shù)據(jù)少于10條。 針對這種我們采用子查詢的方式解

    2024年02月13日
    瀏覽(20)
  • ElementUI之動態(tài)樹+數(shù)據(jù)表格+分頁->動態(tài)樹,動態(tài)表格

    ElementUI之動態(tài)樹+數(shù)據(jù)表格+分頁->動態(tài)樹,動態(tài)表格

    動態(tài)樹 動態(tài)表格 1.動態(tài)樹 2.動態(tài)表格 ?

    2024年02月07日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包