国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django框架實(shí)現(xiàn)的簡單分頁功能示例

2020-01-04 13:56:18
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Django框架實(shí)現(xiàn)的簡單分頁功能。分享給大家供大家參考,具體如下:

前面一篇《Django開發(fā)的簡易留言板》寫了個(gè)簡單的留言板,如果數(shù)據(jù)量太多的話在一頁顯示就不那么友好了,本文就是做一個(gè)分頁顯示。

代碼在上一篇的基礎(chǔ)上修改。

導(dǎo)入分頁模塊并修改views

#只需修改index函數(shù)即可from django.core.paginator import Paginatordef index(request):  messages = models.Message.objects.all() #獲取全部數(shù)據(jù)  limit = 10  paginator = Paginator(messages, limit) #按每頁10條分頁  page = request.GET.get('page','1') #默認(rèn)跳轉(zhuǎn)到第一頁  result = paginator.page(page)  return render(request, 'guestbook/index.html', {'messages' : result})

修改html

<!DOCTYPE html><html>  <head>    <meta charset="utf-8" />    <title>留言板</title>    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" crossorigin="anonymous">  </head>  <body>    <table class="table table-striped table-bordered table-hover table-condensed">      <thead>        <tr class="danger">          <th>留言時(shí)間</th>          <th>留言者</th>          <th>標(biāo)題</th>          <th>內(nèi)容</th>        </tr>      </thead>      <tbody>        {% if messages %}          {% for message in messages %}            <tr class="{% cycle 'active' 'success' 'warning' 'info' %}">              <td>{{ message.publish|date:'Y-m-d H:i:s' }}</td>              <td>{{ message.username }}</td>              <td>{{ message.title }}</td>              <td>{{ message.content }}</td>            </tr>          {% endfor %}        {% else %}          <tr>            <td colspan="4">無數(shù)據(jù)</td>          </tr>        {% endif %}      </tbody>    </table>    <!-- 分頁開始 -->    <div>      <ul class="pagination">      <li><a href="/guestbook/index/?page=1" rel="external nofollow" >首頁</a></li>         {% if messages.has_previous %}            <li><a href="/guestbook/index/?page={{ messages.previous_page_number }}" rel="external nofollow" >上一頁</a></li>        {% endif %}         {% for num in messages.paginator.page_range %}          <li><a href="/guestbook/index/?page={{ num }}" rel="external nofollow" >{{ num }}</a></li>         {% endfor %}        {% if messages.has_next %}           <li><a href="/guestbook/index/?page={{ messages.next_page_number }}" rel="external nofollow" >下一頁</a></li>        {% endif %}        <li><a href="/guestbook/index/?page={{ messages.paginator.num_pages }}" rel="external nofollow" >尾頁</a></li>       </ul>    </div>    <!-- 分頁結(jié)束 -->    <div>       <a class="btn btn-xs btn-primary" href="/guestbook/create/" rel="external nofollow" >去留言</a>    </div>  </body></html>

其實(shí)主要使用了Django自帶的Paginator模塊,關(guān)于這個(gè)模塊大家可以自己去官方文檔查看,功能還是挺強(qiáng)大的,如果配合ListView的話,三行代碼就可以實(shí)現(xiàn)分頁功能。

希望本文所述對大家基于Django框架的Python程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 紫阳县| 无极县| 聊城市| 金门县| 宽城| 柳林县| 绥棱县| 阜新| 江门市| 夏邑县| 托克托县| 额济纳旗| 仁怀市| 乐安县| 屏东县| 莒南县| 呼伦贝尔市| 丰城市| 伊宁县| 宁晋县| 昌江| 孟津县| 桑植县| 蓬溪县| 汉源县| 论坛| 洛扎县| 客服| 绵阳市| 马龙县| 齐河县| 海晏县| 大荔县| 焦作市| 绥江县| 杂多县| 景泰县| 偏关县| 朝阳县| 抚松县| 黄大仙区|