1. 程式人生 > >Django學習手冊 - 初識自定義分頁

Django學習手冊 - 初識自定義分頁

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學習手冊 - 初識自定義分頁