Django學習手冊 - 初識自定義分頁
阿新 • • 發佈:2018-09-04
request shortcut ren 字符 span turn 翻頁 info char
核心:
<a href=‘http://127.0.0.1:8000/index-%s‘>%s<a>
自定義分頁
1.前端處理字符
後端的字符 return render(request,"index.html",{"l傳到前端的數據":list})
{{ 傳到前端的數據 | safe}}
2.後端處理字符
導入處理的模塊 from django.utils.safestring import mark_safe
mark_safe(需要處理的數據)
再傳遞到前端。
以下是練習的代碼:
前端:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #on_c{ background-color: blueviolet; color: azure; } </style> </head> <body> <div> <ur> {% for i in list_info %}<li> <a >{{ i }}</a> </li> {% endfor %} </ur> <div style="width: 360px"> {#方式一,前端處理#} {#<a href="‘http://127.0.0.1:8000/index-%s‘">上一頁</a>#} <span>{{ d2_s | safe}}</span> {% for i2 in d %} <span>{{ i2| safe}}</span> {% endfor %} <span>{{ d3_x |safe}}</span> {#方式二,後臺處理數據#} {#<span>{{ d }}</span>#} </div> </div> </body> </html>
url配置:
urlpatterns = [
path(‘admin/‘, admin.site.urls),
url(‘^index-(\d+)/‘, views.index),
]
views:
from django.shortcuts import render from django.shortcuts import HttpResponse from django.utils.safestring import mark_safe list_info = [] for i in range(1,199): list_info.append(i) def index(request,num1): #將str轉為int num = int(num1) #每頁顯示多少數據 a = (num-1)*10 b = num*10 list_info2 = list_info[a:b] #分頁長度,默認為10 e,f = divmod(len(list_info), 10) if f !=0: c = e+2 else: c = e+1 #分頁跳轉 d=[] for i in range(1,c): if i == num: d.append("<a id=‘on_c‘ href=‘http://127.0.0.1:8000/index-%s‘>%s<a>"%(i,i)) else: d.append("<a href=‘http://127.0.0.1:8000/index-%s‘>%s<a>" % (i, i)) #分頁 str 數據處理 #方式一,前端處理 #方式二,後端處理 # d2 = mark_safe(d) #選中頁面分頁 居中 if num > 5: d2 = d[num-6:num+5] elif num <= 5: d2 = d[0:10] #上下翻頁 if 1< num < len(d): d2_s = "<a href=‘http://127.0.0.1:8000/index-%s‘>上一頁<a>" % (num-1) d3_x = "<a href=‘http://127.0.0.1:8000/index-%s‘>下一頁<a>" % (num+1) elif num==1: d2_s = "<a href=‘http://127.0.0.1:8000/index-%s‘>上一頁<a>" % num d3_x = "<a href=‘http://127.0.0.1:8000/index-%s‘>下一頁<a>" % (num + 1) elif num==len(d): d2_s = "<a href=‘http://127.0.0.1:8000/index-%s‘>上一頁<a>" % (num-1) d3_x = "<a href=‘http://127.0.0.1:8000/index-%s‘>下一頁<a>" % num #將數值傳遞至前端 return render(request,"index.html",{"list_info":list_info2,‘d‘:d2,"d2_s":d2_s,"d3_x":d3_x})
Django學習手冊 - 初識自定義分頁