Django学习手册 - 初识自定义分页

核心:

<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})


原文地址:https://www.cnblogs.com/Anec/p/9579015.html

时间: 2024-11-10 01:11:48

Django学习手册 - 初识自定义分页的相关文章

Django学习手册 - 初识django

初识: django简介: 开放源代码的web应用框架 由python语言编写的. 一.框架基本概念(核心): 以上这个图就是 django 的核心逻辑图,必须熟记.后续的所有编程都跟这个图的逻辑息息相关. 二.MVC/MTV 是啥子? MVC:全名Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交

Django学习手册 - 自定义分页工具

前端代码: <div class="xianshi"> {% for i in info %} <ul> <li>{{ i }}</li> </ul> {% endfor %} </div> <div class="yema"> {% for x in yemalist%} <span>{{ x | safe}}</span> {% endfor%} <

django学习日志之自定义用户扩展

django 为我们提供了强大的用户认证系统,并且提供了基于该系统的User模型,所以,很多时候,我们有必要对自己的user进行业务扩展,得到满足我们自己业务需求的user.借此,写下自己的感悟. user内置属性如下: username 用户名,必需字段.30个字符或更少,包含 _, @, +, . 和 - 字符. first_name可选. <=30字符. last_name可选. <=30字符r. email邮箱,可选. Email地址. password密码,必需.Django不是以明

Django学习手册 - 创建Django工程项目以及APP

前置步骤: 下载python,django 并且安装好 python 解释器以及django模块. 整体步骤阐述: 创建django工程项目 步骤一:进入安装的python目录 步骤二:输入创建工程的命令: 创建业务APP目录 步骤一:进入已创建的工程项目目录 步骤二:输入创建APP 工程项目名称 创建django工程项目: 1.进入安装的python目录下的scripts 目录中 2.在此文件夹的空白处 shift + 鼠标右键  ,在此处打开命令窗口 3.在此窗口下输入: 1 django-

Django学习手册 - pycharm 安装/建立第一个网站hello world

步骤阐述: 1.下载 pycharm 安装包,安装pycharm 2.打开pycharm软件,新建工程项目 3.新建APP,配置url,启动项目 步骤1: pycharm 官网下载: https://www.jetbrains.com/pycharm/ 安装方式跟普通windows 软件安装方式一致,建议指定安装路径. 步骤2: 配置pycharm 软件 1.在创建工程目录前,先要配置解释器(当然默认直接建立Django项目也是可以的,但后续加载新项目会加载不了,所以建议先配置指定解释器.) 文

Django学习手册 - sqlit数据库操作

步骤阐述:( splitDB 是Django自带的一个数据库) 1.在APP01 中的 models.py 配置DB信息  userinfo 相当于数据表的表名,而 uname.pwd 相当于 表中的两个列字段.(DB默认还会自建一个ID列) 2.在setting 中注册 app01. 3.运行命令,建立数据表,写入数据. 4.split 数据库的基本增删改查. 步骤1.在业务app01 models 文当中 写入数据表的 表字段(uname 和 pwd 这个两个字段) 步骤2.在luru的主目

Django学习手册 - ORM 外键

Django 外键操作 关键语法: models.ForeignKey("UserGroup",to_field="gid",default=1,on_delete=models.CASCADE) 参数: "UserGroup"  #外键另外一张表 to_field="gid" #另外一张表的字段 on_delete=models.CASCADE  #因为不加这个会报错相关(https://www.cnblogs.com/ph

Django学习手册 - cookie / session

cookie """ cookie属性: obj.set_cookie(key,value,....) obj.set_signed_cookie(key,value,salt="加密盐",....) 参数: key 键 value="" 值 max_age=None 超时时间 expires=None 超时日期 path="/" cookit生效的路径,/表示根路径,特殊的,跟路径的cookie可以被任何url被任

Django学习手册 - ORM 数据表操作

queryset 数据类型介绍 QuerySet与惰性机制 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行. QuerySet特点: <1>  可迭代的 <2>  可切片 <3>  惰性计算和缓存机制 例: info=models.table_name.objects.all()[0:5] #切片 info= models.table