【Django】网上蛋糕商城后台-类目管理

1.类目管理列表实现

当管理员进入后台管理后,点击类目管理,向服务器发出请求

path('admin/type_list/',viewsAdmin.type_list),
# 处理商品分类管理列表请求
def type_list(request):# 读取分页页码try:ym = request.GET["ym"]except:ym = 1# 查询所有商品分类types = Type.objects.all().order_by("id").values()# 将该分类的商品信息进行分页处理,每页显示5条记录pag = paginator.Paginator(types, 10)# 根据当前页码获取当前分页信息pageInfo = pag.get_page(ym)# 获取当前页的商品列表信息types = pageInfo.object_list# 获取总页码数yms = pag.page_rangereturn render(request, "adminTemp/type_list.html",{"types": types, "page": pageInfo, "yms": yms})
<!DOCTYPE html>
<html>
<head><title>类目列表</title>{% load static %}<meta charset="utf-8"/><link rel="stylesheet" href="{% static 'css/bootstrap.css' %}"/><link rel="stylesheet" href="{% static 'css/page.css' %}"/>
</head>
<body>
<div class="container-fluid">{% include "adminTemp/header.html" %}<br><div><form class="form-inline" method="post" action="/admin/type_add/">{% csrf_token %}<input type="text" class="form-control" id="input_name" name="name" placeholder="输入类目名称" required="required"style="width: 500px"><input type="submit" class="btn btn-warning" value="添加类目"/></form></div><br/>{% if msg %}<div class="alert alert-success">{{ msg }}</div>{% endif %}{% if failMsg %}<div class="alert alert-danger">{{ failMsg }}</div>{% endif %}<br><table class="table table-bordered table-hover"><tr><th width="5%">ID</th><th width="10%">名称</th><th width="10%">操作</th></tr>{% for t in types %}<tr><td><p>{{ t.id  }}</p></td><td><p>{{ t.name  }}</p></td><td><a class="btn btn-primary" href="/admin/type_edit/?id={{ t.id  }}&name={{ t.name  }}">修改</a><a class="btn btn-danger" href="/admin/type_delete/?id={{ t.id  }}">删除</a></td></tr>{% endfor %}</table>
<!-- 显示页码导航栏 --><div id="nav" align="center"><!-- 上一页 --><!-- 判断当前页是否有上一页,如果有上一页则显示上一页的按钮,否则就不显示上一页 -->{% if page.has_previous %}<a href="/admin/type_list/?ym={{ page.previous_page_number }}" class="up_page">上一页</a>{% endif %}<!-- 页码 -->{% for ym in yms %}{% if page.number == ym %}<a href="/admin/type_list/?ym={{ ym }}" class="p_page c_page">{{ ym }}</a>{% else %}<a href="/admin/type_list/?ym={{ ym }}" class="p_page">{{ ym }}</a>{% endif %}{% endfor %}<!-- 下一页 -->{% if page.has_next %}<a href="/admin/type_list/?ym={{ page.next_page_number }}" class="do_page">下一页</a>{% endif %}</div><br>
</div>
</body>
</html>

2.添加类目功能

当管理员需要添加分类时,点击添加类目按钮,向服务器发送请求,将新的分类添加至数据库

path('admin/type_add/',viewsAdmin.type_add),
# 添加分类请求
def type_add(request):name = request.POST["name"]Type.objects.create(name=name)return redirect(type_list)

3.修改类目功能

当管理员需要修改分类时,点击修改按钮,跳转至修改页面

path('admin/type_edit/',viewsAdmin.type_edit),
# 修改分类请求
def type_edit(request):id = request.GET["id"]name = request.GET["name"]return render(request, "adminTemp/type_edit.html", {"id": id, "name": name})
<!DOCTYPE html>
<html>
<head><title>类目编辑</title>{% load static %}<meta charset="utf-8"/><link rel="stylesheet" href="{% static 'css/bootstrap.css' %}"/>
</head>
<body>
<div class="container-fluid">{% include "adminTemp/header.html" %}<br><br><form class="form-horizontal" action="/admin/edit/" method="post">{% csrf_token %}<input type="hidden" name="id" value="{{ id }} "><div class="form-group"><label for="input_name" class="col-sm-1 control-label">类目名称</label><div class="col-sm-6"><input type="text" class="form-control" id="input_name" name="name" value="{{ name }}" required="required"></div></div><div class="form-group"><div class="col-sm-offset-1 col-sm-10"><button type="submit" class="btn btn-success">提交修改</button></div></div></form><span style="color:red;"></span></div>
</body>
</html>

当管理员更新分类内容后,点击提交修改按钮

path('admin/edit/',viewsAdmin.edit),
# 完成修改分类请求
def edit(request):id=request.POST["id"]name=request.POST["name"]type=Type.objects.filter(id=id)type.update(name=name)return redirect(type_list)

4.删除类目功能

当管理员删除某一个分类时,点击删除按钮

path('admin/type_delete/',viewsAdmin.type_delete),
# 删除分类请求
def type_delete(request):id=request.GET["id"]type=Type.objects.get(id=id)type.delete()return redirect(type_list)

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

html2canvas + jspdf 纯前端HTML导出PDF的实现与问题

前言 这几天接到一个需求&#xff0c;富文本编辑器的内容不仅要展示出来&#xff0c;还要实现展示的内容导出pdf文件。一开始导出pdf的功能是由后端来做的&#xff0c;然后发现对于宽度太大的图片&#xff0c;导出的pdf文件里部分图片内容被遮盖了&#xff0c;但在前端是正常显…

Spring Boot1(概要 入门 Spring Boot 核心配置 YAML JSR303数据校验 )

目录 一、Spring Boot概要 1. SpringBoot优点 2. SpringBoot缺点 二、Spring Boot入门开发 1. 第一个SpringBoot项目 项目创建方式一&#xff1a;使用 IDEA 直接创建项目 项目创建方式二&#xff1a;使用Spring Initializr 的 Web页面创建项目 &#xff08;了解&#…

【日常记录】【插件】excel.js导出的时候给单元格设置下拉选择、数据校验等

文章目录 1. 代码基本结构2. 导出的excel 某单元格的值设置为下拉选择3. 如何把下拉选择项设置为动态4. 单元格设置校验、提示5. 在WPS上的设置 1. 代码基本结构 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><…

如何在AWS上构建Apache DolphinScheduler

引言 随着云计算技术的发展&#xff0c;Amazon Web Services (AWS) 作为一个开放的平台&#xff0c;一直在帮助开发者更好的在云上构建和使用开源软件&#xff0c;同时也与开源社区紧密合作&#xff0c;推动开源项目的发展。 本文主要探讨2024年值得关注的一些开源软件及其在…

系统架构设计师教程 第3章 信息系统基础知识-3.5 专家系统-解读

系统架构设计师教程 第3章 信息系统基础知识-3.5 专家系统(ES) 3.5.1 人工智能3.5.1.1 人工智能的特点3.5.1.2 人工智能的主要分支3.5.2 ES的概念3.5.2.1 ES 概述3.5.2.2 与传统程序的区别3.5.3 ES的特点3.5.4 ES的组成3.5.4.1 知识库3.5.4.2 综合数据库3.5.4.3 推理机3.5.4.…

持续集成08--Jenkins邮箱发送构建信息及测试报告

前言 在持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;的自动化流程中&#xff0c;及时通知团队成员关于构建的成功或失败是至关重要的。Jenkins&#xff0c;作为强大的CI/CD工具&#xff0c;提供了多种通知机制&#xff0c;其中邮件通知是最常用且有…

如何用EXCEL自动解方程/方程组?利用 矩阵乘法X=A-*B,X=mmult(minverse(A), B)

目录 问题的由来 1 数据 → 模拟分析 → 单变量求解 1.1 找一个单元格填入公式 1.2 功能入口 1.3 选择单变量求解&#xff0c;分别填入内容 1.4 求解 1.5 这个感觉用处不大 2 重点介绍&#xff0c;用EXCEL进行矩阵运算解方程的操作 2.1 运用EXCEL进行矩阵运算&…

深入理解HTML基础【代码审计实战指南】

文章目录 JAVA技术体系的说明步骤 前端和后端技术栈网页的组成1. 结构 (HTML)2. 表现 (CSS)3. 行为 (JavaScript / JQuery) HTML的基本结构标签使用细节&#xff1a;font标签的使用字符实体含义&#xff1a;常用的特殊字符&#xff1a; 标题标签超链接标签列表标签无序列表ul/l…

谷粒商城-商品上架

1.sku在es中的存储模型分析(spring整和es) es中所有数据存在内存中,内存产品贵,能节省就节省,只保存有用的信息 两种保存方法:(空间换时间,时间换空间): 我们选空间换时间 ES中放这些东西: "mappings": { "properties": { "skuId"…

verilog bug记录——正点原子spi_drive存在的问题

verilog bug记录——正点原子spi_drive存在的问题 问题概述代码修改—spi_drive.v遗留问题 问题概述 因为项目需求&#xff0c;需要利用spi对flash进行擦除和写入操作&#xff0c;所使用的开发板是正电原子的达芬奇开发板&#xff0c;我事先往Flash里面存了两个bit&#xff0c…

数据挖掘与分析部分实验与实训项目报告

一、机器学习算法的应用 1. 朴素贝叶斯分类器 相关代码 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB, MultinomialNB from sklearn.metrics import accuracy_score # 将数据加载到DataFrame中&a…

【已解决】Django连接MySQL启动报错Did you install mysqlclient?

在终端执行python manage.py makemigrations报错问题汇总 错误1&#xff1a;已安装mysqlclient&#xff0c;提示Did you install mysqlclient? 当你看到这样的错误信息&#xff0c;表明Django尝试加载MySQLdb模块但未找到&#xff0c;因为MySQLdb已被mysqlclient替代。 【解…

【删除排序链表中的重复元素 II】python刷题记录

因为可能删除头结点&#xff0c;所以我们采用dummy哑结点&#xff08;跟上一篇类似&#xff09; dummy初始化 dummyListNode(0,head) # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # …

黑客自学手册(网络安全)

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防…

网络安全----防御----防火墙双机热备

实验要求&#xff1a; 1&#xff0c;对现有网络进行改造升级&#xff0c;将当个防火墙组网改成双机热备的组网形式&#xff0c;做负载分担模式&#xff0c;游客区和DMZ区走FW4&#xff0c;生产区和办公区的流量走FW1 2&#xff0c;办公区上网用户限制流量不超过100M&#xff0…

如何将PDF转换成可以直接编辑的CAD图纸?

PDF图纸是为了让用户更好的阅览CAD文件&#xff0c;但是&#xff0c;当我们想要对其进行编辑的时候&#xff0c;PDF图纸就是一个麻烦了。那么PDF转换成CAD后可以编辑吗&#xff1f;如何将PDF转换成可以直接编辑的CAD图纸呢&#xff1f;本篇给你答案。 1、启动迅捷CAD编辑器&…

不同业务场景下通过mars3d实现绕点旋转效果

1.鼠标单击地图某一处就对该点进行绕点旋转效果 相关代码&#xff1a; 1.相关绕点旋转的初始化代码&#xff1a; const rotatePoint new mars3d.thing.RotatePoint({direction: false, // 方向 true逆时针&#xff0c;false顺时针time: 50 // 给定飞行一周所需时间(单位 秒)&…

python如何输入矩阵

使用numpy创建矩阵有2种方法&#xff0c;一种是使用numpy库的matrix直接创建&#xff0c;另一种则是使用array来创建。 首先导入numpy&#xff1a; &#xff08;1&#xff09;import numpy &#xff08;2&#xff09;from numpy import * &#xff08;3&#xff09;import …

WPF/C#:实现导航功能

前言 在WPF中使用导航功能可以使用Frame控件&#xff0c;这是比较基础的一种方法。前几天分享了wpfui中NavigationView的基本用法&#xff0c;但是如果真正在项目中使用起来&#xff0c;基础的用法是无法满足的。今天通过wpfui中的mvvm例子来说明在wpfui中如何通过依赖注入与M…

WinOS下获取dll中的方法列表

开发的Windows应用程序的安装环境从Win11 23H2切换到24H2时&#xff0c;出现获取电源模式不正确的问题&#xff0c;通过debug代码发现获取电源模式的方法是走的方法编号。由于Win11 24H2中增加了对外提供的方法&#xff0c;而增加的方法放在方法列表中间&#xff0c;导致其后面…