Django实例_后台管理及分页器

原理步骤参考:

Django开发_14_后台管理及分页器-CSDN博客

一、创建Django项目

二、创建page_app

python manage.py startapp page_app

三、修改settings.py文件

(一)添加app

(二)设置每页显示数据个数

(三)设置中文显示

四、总路由添加子路由路径

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("",include("page_app.urls",namespace="page"))
]

五、添加子路由文件

from django.urls import path

app_name = "page"
urlpatterns = [

]

六、models.py:创建模型

from django.db import models


class Student(models.Model):
    name = models.CharField(max_length=32, verbose_name="姓名")
    gender = models.CharField(max_length=2, verbose_name="性别")
    score = models.FloatField(verbose_name="成绩")

    def __str__(self):
        return self.name  # 添加实例化对象时以姓名显示

    class Meta:
        verbose_name = "学生"  # 后台管理显示中文:学生
        verbose_name_plural = verbose_name  # 用于后台管理复数形式不显示s

    @classmethod
    def get_list(cls, **kwargs):
        filters = {}
        return cls.objects.filter(**filters)  # 没有参数相当于cls.objects.all()

迁移模型:

manage.py makemigrations
python manage.py migrate

七、admin.py:注册模型

from django.contrib import admin

from page_app.models import Student


models = [
    Student
]

admin.site.register(models)

八、登录admin后台添加实例化模型

(一)创建超级账号

(二)启动运行

(三)登录添加学生

九、views.py:编写视图函数

from django.shortcuts import render
from django.core.paginator import Paginator, InvalidPage

from Paginator.settings import PAGE_SIZE
from page_app.models import Student


def list_students_view(request):
    page_num = request.GET.get("page", 1)  # href中没有传递page时默认为1
    students = Student.get_list()
    paginator = Paginator(students, PAGE_SIZE)
    try:
        data = paginator.page(page_num)
    except InvalidPage:
        data = paginator.page(1)
    return render(request, "stu.html", locals())

十、urls.py:路由设置

from django.urls import path

from page_app.views import list_students_view

app_name = "page"
urlpatterns = [
    path("list/", list_students_view, name="list")
]

十一、html文件:上一页、下一页以及显示当前页/总页数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>分页</title>
</head>
<body>
<table>
    <thead>
    <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>成绩</th>
    </tr>
    </thead>
    <tbody>
    {% for i in data %}
        <tr>
        <td>{{ i.id }}</td>
        <td>{{ i.name }}</td>
        <td>{{ i.gender }}</td>
        <td>{{ i.score }}</td>
        </tr>
    {% endfor %}
    </tbody>
</table>
<center>
    {% if data.has_previous %}
        <a href="{% url 'page:list' %}?page={{ data.previous_page_number }}">上一页</a>
    {% else %}
        <a href="">上一页</a>
    {% endif %}
    {{ page_num }}/{{ paginator.num_pages }}
    {% if data.has_next %}
        <a href="{% url 'page:list' %}?page={{ data.next_page_number }}">下一页</a>
    {% else %}
        <a href="">下一页</a>
    {% endif %}

</center>
</body>
</html>

十二、启动运行,效果展示

http://127.0.0.1:8000/list/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/360162.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中国的茶文化:历史、传统与生活

中国的茶文化&#xff1a;历史、传统与生活 一、引言 茶&#xff0c;这一神奇而古老的饮品&#xff0c;与中国的历史、文化和生活方式紧密相连。中国的茶文化&#xff0c;源远流长&#xff0c;博大精深&#xff0c;是中华文明的重要组成部分。它不仅是一种饮料&#xff0c;更是…

Hutool导入导出用法

整理了下Hutool导入导出的简单使用。 导入maven或jar包&#xff08;注意这里导入的poi只是为了优化样式&#xff09; <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --> <dependency><groupId>cn.hutool</groupId><artifactId&g…

用低版本python的时候pip无法联网

如图所示&#xff0c;我用较低版本pip&#xff08;3.7&#xff0c;3.8&#xff09;的时候pip无法使用代理联网 看报错是代理问题&#xff0c; 那么直接在pip的时候直接加上自己科学上网的代理就ok了 当然也可以换源解决&#xff0c;这个网上教程挺多的就自己搜搜好了hhh

在 Linux 中挂载新硬盘动态使用

目录 一&#xff1a;添加硬盘并且格式化 二&#xff1a;创建逻辑卷 三&#xff1a;挂载卷到目录 在 Linux 中挂载新硬盘并进行格式化的操作可以按照以下步骤进行&#xff1a; 一&#xff1a;添加硬盘并且格式化 查看现有分区状态和服务器安装的硬盘状态&#xff1a; df -…

SpringBoot---创建项目

介绍 此项目SpringBoot使用的是2.6.1版本&#xff0c;由于这个项目使用的是maven聚合方式创建的&#xff0c;所以第二步是我在聚合方式下需要添加的依赖&#xff0c;完整的pom.xml内容放到了最下面。 第一步&#xff1a;创建Maven项目 这个里什么也不勾选&#xff0c;直接点…

Java面向对象详解

面向对象和面向过程的区别&#xff1a; 面向对象和面向过程都是对软件分析、设计和开发的一种思想&#xff0c;它指导着人们以不同的方式去分析、设计和开发软件。C语言是一种典型的面向过程语言&#xff0c;Java是一种典型的面向对象语言。 面向过程适合简单、不需要协作的事务…

时序预测 | PyTorch基于改进Informer模型的时间序列预测(锂电池SOC估计)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 时序预测 | PyTorch基于改进Informer模型的时间序列预测&#xff0c;锂电池SOC估计 时间序列预测&#xff1a;informer改进模型[new][new][new]&#xff08;Fourier-Mixed Window Informer 采用傅里叶混合窗口注意力机…

用React给XXL-JOB开发一个新皮肤(四):实现用户管理模块

目录 一. 简述二. 模块规划 2.1. 页面规划2.2. 模型实体定义 三. 模块实现 3.1. 用户分页搜索3.2. Modal 配置3.3. 创建用户表单3.4. 修改用户表单3.5. 删除 四. 结束语 一. 简述 上一篇文章我们实现登录页面和管理页面的 Layout 骨架&#xff0c;并对接登录和登出接口。这篇…

cpu到达100%问题排查

0、背景 首先定位到mysql 的cpu使用率较高 原因是任务域的作业实例补偿定时任务相关sql查询问题&#xff0c;该sql 2min执行一次&#xff0c;一次查询两次&#xff0c;导致cpu飙升&#xff0c;可考虑优化sql&#xff0c;添加以下索引 ALTER TABLE scheduler.tbl_simba_os_sc…

Linux编辑器之vim的使用

文章目录 一、vim简介二、vim的基本概念三、vim的基本操作四、vim正常模式命令集移动光标删除文字复制替换撤销上一次操作更改跳至指定的行vim末行模式命令集列出行号跳到文件中的某一行查找字符保存文件离开vim 五、进阶vim玩法打开文件批量注释代码执行shell命令指定注释窗口…

Excel中将16进制数转化成10进制(有/无符号)

Excel中将16进制数转化成10进制&#xff08;有/无符号&#xff09; Excel或者matlab中常用XXX2XXX进行不同进制的转换 16进制转10进制&#xff08;无符号数&#xff09;&#xff1a;HEX2DEC 16进制转10进制&#xff08;有符号数&#xff09;&#xff1a; FA46为例&#xff0c…

AWS 专题学习 P16 (Disaster Recovery Migrations)

文章目录 专题总览Disaster Recovery Overview1. RPO and RTO2. Disaster Recovery Strategies3. Backup & Restore&#xff08;High RPO&#xff09;4. Disaster Recovery – Pilot Light (试点灯)5. Warm Standby&#xff08;暖待命&#xff09;6. Multi Site / Hot Site…

Linux进程间通信(IPC)机制之一:共享内存

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Nonsense—Sabrina Carpenter 0:50━━━━━━️&#x1f49f;──────── 2:43 &#x1f504; ◀️ ⏸ ▶️ …

2024年【危险化学品经营单位安全管理人员】考试内容及危险化学品经营单位安全管理人员模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【危险化学品经营单位安全管理人员】考试内容及危险化学品经营单位安全管理人员模拟考试&#xff0c;包含危险化学品经营单位安全管理人员考试内容答案和解析及危险化学品经营单位安全管理人员模拟考试练习。安…

如何提高思维能力,洞悉事物本质?(一)

什么是思维模型&#xff08;Mental Model&#xff09;&#xff1f; 你可能会在不少文章、培训课里面&#xff0c;看到这个名字。它们往往会用复杂的词汇和概念&#xff0c;通常还会扯上一些名人&#xff0c;把它包装得高深莫测。 但实际上&#xff0c;思维模型究竟是什么呢&…

照明灯具哪个品牌好知乎?质量最好的护眼台灯排行榜

台灯是家中必不可少的用品之一&#xff0c;它不仅能够提供基础的照明功能&#xff0c;还能营造出不一样的风格和氛围&#xff0c;影响人们的心情和生活品质。而一台好的护眼台灯还能够呵护我们的眼睛&#xff0c;保护好视力健康。想拥有一台使用体验感又好&#xff0c;寿命又长…

故障诊断 | 一文解决,SVM支持向量机的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,SVM支持向量机的故障诊断(Matlab) 支持向量机(Support Vector Machine,SVM)是一种常用的监督学习算法,用于分类和回归分析。SVM的主要目标是找到一个最优的超平面(或者在非线性情况下是一个最优的超曲面),将不同类别的样本分开…

Vue3中ElementPlus组件二次封装,实现原组件属性、插槽、事件监听、方法的透传

本文以el-input组件为例&#xff0c;其它组件类似用法。 一、解决数据绑定问题 封装组件的第一步&#xff0c;要解决的就是数据绑定的问题&#xff0c;由于prop数据流是单向传递的&#xff0c;数据只能从父流向子&#xff0c;子想改父只能通过提交emit事件通知父修改。 父&a…

【JavaEE】网络原理:UDP数据报套接字编程和TCP流套接字编程

目录 1.UDP数据报套接字编程 1.1 DatagramSocket 1.2 DatagramPacket 1.3 InetSocketAddress 1.4 基于UDP实现回响服务器 2.TCP流套接字编程 2.1 ServerSocket 2.2 Socket 2.3 基于TCP实现回响服务器 1.UDP数据报套接字编程 API 介绍 1.1 DatagramSocket DatagramS…

Transformer 自然语言处理(三)

原文&#xff1a;Natural Language Processing with Transformers 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第八章&#xff1a;使 transformers 在生产中更高效 在之前的章节中&#xff0c;您已经看到了 transformers 如何被微调以在各种任务上产生出色的结果。…