当前位置: 首页 > news >正文

ThinkPHP的“get\post\put\delete“请求

首先了解一下这四个请求的区别

1.GET 请求

用途:获取资源(只读操作,不修改服务器数据)。
特点:
参数通过 URL 的 查询字符串(Query String) 传递(例如 /book?id=1)。
数据在 URL 中可见,不安全(不适合敏感信息)。
幂等性:多次请求结果相同。
安全性:不会修改服务器资源。

2.POST 请求

用途:创建新资源(每次请求可能产生不同结果)。
特点:
参数通过 请求体(Request Body) 传递(支持 JSON、表单等格式)。
数据在 URL 中不可见,相对安全。
非幂等性:多次提交可能创建多个资源。

3.PUT 请求

用途:全量更新资源(要求客户端提供完整的资源数据)。
特点:
参数通过 请求体 传递(如 JSON)。
幂等性:多次请求结果相同(例如重复更新同一资源,最终状态一致)。
需要指定资源的唯一标识(如 /books/1)。

4.DELETE 请求

用途:删除资源。
特点:
通常不需要请求体,资源标识通过 URL 指定(如 /books/1)。
幂等性:多次删除同一资源,结果一致(第一次删除成功,后续返回 404)。

使用thinkphp创建四种请求的样例

1.get请求

注意这段代码是在controller层的,同时不能直接return 字符串以外别的类型,所以进行了json转换。

	#[Route("GET", "getPage")]public function page(){return json_encode(['1', '2']);}

请求结果
在这里插入图片描述

2.post请求

注意这段代码是在controller层的,是使用halt直接中断输出,他会里面的内容进行dump。

	#[Route("POST", "add")]public function add(){halt($this->request->post());}

请求结果
在这里插入图片描述

3.put请求

注意这段代码是在controller层的,isPut会判断请求类型是不是Put,其实在定制路由时就限制了请求类型,这里不判断也是可以的。

	#[Route("PUT", "update")]public function update(){if ($this->request->isPut()) {halt($this->request->param());}}

请求结果
在这里插入图片描述

4.delete请求

注意这段代码是在controller层的,可以在param里写你要接受的指定参数。

	#[Route("DELETE", "delete")]public function delete(){halt($this->request->param('id'));}

请求结果
在这里插入图片描述

完整代码

namespace app\controller;use app\BaseController;
use think\annotation\route\Group;
use think\annotation\route\Route;#[Group("Books")]
class Books extends BaseController
{#[Route("GET", "getPage")]public function page(){return json_encode(['1', '2']);}#[Route("POST", "add")]public function add(){halt($this->request->post());}#[Route("PUT", "update")]public function update(){if ($this->request->isPut()) {halt($this->request->param());}}#[Route("DELETE", "delete")]public function delete(){halt($this->request->param('id'));}
}

注意如果use think\annotation\route\Group; use think\annotation\route\Route;报错。
需要安装额外插件

composer require topthink/think-annotation

相关文章:

ThinkPHP的“get\post\put\delete“请求

首先了解一下这四个请求的区别 1.GET 请求 用途:获取资源(只读操作,不修改服务器数据)。 特点: 参数通过 URL 的 查询字符串(Query String) 传递(例如 /book?id1)。 数…...

目标检测的训练策略

在目标检测竞赛中,训练策略的优化是提高模型性能的关键。常用的训练策略包括数据预处理、数据增强、超参数调节、损失函数设计、正负样本采样、模型初始化和训练技巧等。以下是一些常见的训练策略: 1. 数据预处理与数据增强 数据归一化:对输…...

【JavaSE】小练习 —— 图书管理系统

【JavaSE】JavaSE小练习 —— 图书管理系统 一、系统功能二、涉及的知识点三、业务逻辑四、代码实现4.1 book 包4.2 user 包4.3 Main 类4.4 完善管理员菜单和普通用户菜单4.5 接着4.4的管理员菜单和普通用户菜单,进行操作选择(1查找图书、2借阅图书.....…...

代码随想录Day29

Day29 动态规划part02 LeetCode 62.不同路径 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” &…...

Python入门(3):语句

目录 1 基本语句 1.1 表达式语句 1.2 赋值语句 2 控制流语句 2.1 条件语句 2.2 循环语句 while循环: for循环: 2.3 流程控制语句 1. break语句:退出整个循环体 2. continue语句:只跳过本次循环,还会进…...

04_SQL概述及DDL

文章目录 一、关于SQL1.1、SQL概述1.2、SQL分类 二、数据库操作2.1、查看数据库2.2、切换数据库2.3、查询当前使用的数据库2.4、创建数据库2.5、查看数据库创建信息2.6、修改数据库2.7、删除数据库 三、表的操作3.1、数据类型3.1.1、数值类型3.1.2、字符串类型3.1.3、日期时间类…...

如何调整yarn.nodemanager.vmem-pmem-ratio参数?

调整 yarn.nodemanager.vmem - pmem - ratio 参数,可参考以下步骤: 打开YARN配置文件 找到 yarn - site.xml 文件,该文件通常位于Hadoop配置目录中,例如 /etc/hadoop/conf 或 /opt/module/hadoop - 3.1.3/etc/hadoop 。 找到并修改…...

【质量管理】质量的系统是预防,那以预防为主的质量管理系统包括什么?

“质量的系统是预防”这是克劳士比零缺陷管理四项基本原则的第二项基本原则。什么样的系统才是一个以预防为主的质量管理系统呢? 一个以预防为主的质量系统,必须包括三大方面:质量检验系统、质量保证系统、质量管理系统。 举个例子&#xff1…...

JavaScript 事件流与事件委托

目录 一、事件流、事件捕获与事件冒泡 1. 事件流(Event Flow) 2. 事件捕获(Event Capturing) 3. 事件冒泡(Event Bubbling) 4. 阻止事件冒泡 5. 事件解绑 6. 实际应用场景 二、事件委托 1. 什么是…...

RAG 优化 Embedding 模型或调整检索策略

在 RAG(Retrieval-Augmented Generation)系统中,优化 Embedding 模型和调整检索策略是提升检索质量的核心手段。以下是系统化的优化方法和实践指南: 一、优化 Embedding 模型 Embedding 模型的质量直接决定检索的召回率(Recall)和准确率(Precision)。优化方向包括: …...

Sentinel[超详细讲解]-3

主要讲解🚀 - 基于QPS/并发数的流量控制 1、流控规则 流量控制(Flow Control)用于限制某个资源的访问频率,防止系统被瞬时的流量高峰冲垮。流量控制规则可以针对不同的资源进行配置,例如接口、方法、类等。 流量规则的…...

vue3使用i18n$t()无法获取数组和对象

今天在使用i18n进行国际化时,定义了数组和对象节点,但是用$t()无法获取,只能返回字符串值,查询相关材料,解决方案如下: 使用新的api替换即可,$t > $tm 参考文章(深表谢意):vue -…...

机器学习的一百个概念(5)数据增强

前言 本文隶属于专栏《机器学习的一百个概念》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索&…...

(Kotlin)Android 高效底部导航方案:基于预定义 Menu 和 ViewPager2 的 Fragment 动态绑定实现

支持预定义 Menu 并绑定 Fragment,同时保留动态添加 Tab 的能力 BottomTabHelper.kt package smartconnection.com.smartconnect.home.utilimport android.content.Context import android.util.SparseArray import androidx.annotation.IdRes import androidx.fra…...

零基础入门多媒体音频(4)-GENIVIProjectAudioManager总览

GENIVI Project的AudioManager是一个专门设计用于汽车信息娱乐系统的音频管理解决方案。它负责管理和控制车辆内的音频源和音频路径,确保各种音频信号能够正确、高效地在车辆的音响系统中传输和播放。 AudioManager的核心功能包括音频源的管理、音频路径的控制以及音…...

DeepSeek协助优化-GTX750Ti文物显卡0.65秒卷完400MB float 音频512阶时域FIR

文章目录 1. 学习目的2. 阶段成果2.1 NVVP 性能探查2.2 测试编译环境2.3 测试样例 3 学习过程3.1 提问DeepSeek3.2 最终代码 4. 体会 1. 学习目的 最近在学习cuda,准备给我的taskBus SDR添加CUDA的模块支持,以便可以用PC机压榨山寨 B210那56M的带宽。 因…...

Embedding原理

Embedding(嵌入)是将离散符号(如单词)映射到连续向量空间的核心技术,其本质是语义的数学化表示。以下是其核心原理详解: 一、基础概念图解 graph LRA[单词猫] --> B[索引5] --> C[向量[0.2, -1.3,…...

Spark,配置hadoop集群1

配置运行任务的历史服务器 1.配置mapred-site.xml 在hadoop的安装目录下&#xff0c;打开mapred-site.xml&#xff0c;并在该文件里面增加如下两条配置。 eg我的是在hadoop199上 <!-- 历史服务器端地址 --> <property><name>mapreduce.jobhistory.address…...

人工智能大模型-数据预处理-文本数据预处理-图像数据预处理

文本数据预处理 大模型常用的文本数据类型 通用文本数据&#xff1a;网页、对话和图书资料等专用文本数据&#xff1a;多语言文本、科学文本、代码和指令等 构造方法 指令数据&#xff1a;指令(instruction)、输入(input)、输出(output)3部分组成 如果在instruction部分已…...

怎么使用嵌套虚拟环境实现项目部署之virtualenv嵌套conda绕开安装环境检测实现.venv部署facefusion

#工作记录 一、前言 嵌套虚拟环境本来是不建议的一种方法&#xff0c;这种嵌套虚拟环境的使用有一定特殊性&#xff0c;但在一些特别的使用场景下&#xff0c;嵌套虚拟环境的使用非常有用。 二、嵌套虚拟环境&#xff1a; &#xff08;一&#xff09;conda嵌套virtualenv 该…...

ansible介绍以及安装

一.ansible介绍 实现对IT基础设施的批量管控&#xff0c;加快效率&#xff0c;节省工作时间。 1.ansible特性 1.基于python开发&#xff0c;开源&#xff0c; 2.基于ssh协议工作。只需要确保ansible机器&#xff0c;与被控制机器能连通就好了&#xff0c; 3.no server 无…...

GPT-4o图像生成功能:技术突破与隐忧并存

2025年3月25日&#xff0c;OpenAI正式推出GPT-4o原生图像生成功能&#xff0c;宣称其实现了“文本到图像的终极跨越”。然而&#xff0c;这一被市场追捧的技术在短短72小时内便因用户需求过载触发限流&#xff0c;暴露出算力瓶颈与商业化矛盾的尖锐性。这场技术狂欢的背后&…...

Java 时间处理:轻松掌握 java.time 包

前言 在 Java 开发中&#xff0c;日期和时间处理一直是令人头疼的问题。传统的 Date​ 和 Calendar​ 类不仅复杂&#xff0c;还充满了线程安全和时区处理的坑。Java 8 引入的 java.time​ 包彻底改变了这一局面&#xff0c;带来了现代化、直观且功能强大的日期时间 API。 本…...

Vue项目中Vuex在util引入,断点存在default

示例代码 // src/store/index.js import Vue from vue; import Vuex from vuex; ……Vue.use(Vuex); export default new Vuex.Store({…… })// src/utils/index.js import store from /store // 导入默认导出的 store export async function getDict() {store.state.userInf…...

2025宁德时代测评Verify考什么?网申测评如何通过SHL笔试|附真题线上笔试考点、高分攻略、CATL新能源科技SHL测评宁德社招题目、面试攻略、求职建议

——职小豚 带你拆解新能源巨头招聘密码 一、宁德时代&#xff1a;新能源赛道「超级独角兽」 作为全球动力电池龙头&#xff0c;宁德时代&#xff08;CATL&#xff09;的江湖地位无需多言&#xff1a; 技术硬实力&#xff1a;麒麟电池、钠离子电池、无钴电池等黑科技加持&…...

谈谈常见的数据结构(如数组、链表、栈、队列、哈希表、树、图)及其应用场景

一、数组&#xff08;Array&#xff09; 定义&#xff1a;连续存储相同类型数据的线性结构&#xff0c;支持随机访问。 应用场景&#xff1a;列表渲染、数据缓存、算法处理 代码示例&#xff1a; // 数组基本操作 const arr [1, 2, 3, 4]; arr.push(5); // O(1) 平均时间复杂…...

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的 AOP:实现日志记录与性能监控

答应我&#xff0c;这篇一定要看到最后~&#xff01; <前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&a…...

【算法】快速幂

一、概念 快速幂是一种高效的指数运算&#xff0c;当指数范围过大时&#xff0c;通过位运算能够减少大量的计算次数 对于&#xff0c;我们通过将指数b转化为二进制数&#xff0c;就可以将分解为许多的&#xff08;其中i是指数b中对应位为1的位数&#xff09; 例如&#xff0…...

使用卷积神经网络识别MNIST数据集

卷积神经网络 卷积神经网络本质是共享权重稀疏链接的全连接网络 编写步骤 构建一个神经网络&#xff0c;步骤是几乎不变的&#xff0c;大概有以下几步 准备数据集 #更高级的CNN网络 import torch import torch.nn as nn import torch.nn.functional as F import torchvisi…...

JavaScript 中数组增删改查

在 JavaScript 中,数组是一种用来存储不同类型的值的数据结构。 增加数组元素: let arr = [1, 2, 3];// 在数组末尾添加元素 arr.push(4); console.log(arr); // [1, 2, 3, 4]// 在数组开头添加元素 arr.unshift(0); console.log(arr); // [0, 1, 2, 3, 4]// 在指定位置插…...

【Kettle安装】Kettle安装过程, 电脑已安装java23,安装Kettle 出现报错:尝试启动 Java 虚拟机(JVM)时失败解决方法

Kettle安装 Kettle 通常指的是 Pentaho Data Integration (PDI)&#xff0c;这是一款开源的 ETL&#xff08;Extract, Transform, Load&#xff09;工具&#xff0c;用于数据集成、数据清洗和数据分析。它的核心工具名为 Spoon&#xff0c;但整个项目常被直接称为 Kettle 数据…...

Spring笔记04-注解注入

1.导入包 <dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId>…...

[动规19] 最大子数组和

目录 1. 题意 2. 思路 2.1. 状态表示 2.2. 状态转移方程 2.3. 初始化 2.4. 填表顺序 2.5. 返回值 3. 编码 1. 题意 链接: 53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&…...

2024年零知识证明(ZK)研究进展

Sumcheck 整个领域正在转向更多地依赖于 Sumcheck Protocol Sumcheck是用于验证多项式承诺的协议&#xff0c;常用于零知识证明&#xff08;ZKP&#xff09;中&#xff0c;尤其是在可验证计算和扩展性上。它的主要目的是通过对多项式进行分段检查&#xff0c;从而保证某个多项…...

1. 两数之和

leetcode Hot 100系列 文章目录 一、核心操作二、外层配合操作三、核心模式代码总结 一、核心操作 使用map&#xff0c;key作为数值&#xff0c;value作为下标先寻找对应的目标值&#xff0c;如果找到了则直接返回&#xff0c;否则在往map中插入 提示&#xff1a;小白个人理…...

【电动汽车再生制动控制技术(万字长文,图文并茂)】

电动汽车再生制动控制系统概述 电动汽车再生制动的基本原理是:通过具有可逆作用的电动机/发电机来实现电动汽车动能和电能的转化。在汽车减速或制动时,可逆电机以发电机形式工作,汽车行驶的动能带动发电机将汽车动能转化为电能并储存在储能器(蓄电池或超级电容器)中;在汽车…...

python实现股票数据可视化

最近在做一个涉及到股票数据清洗及预测的项目&#xff0c;项目中需要用到可视化股票数据这一功能&#xff0c;这里我与大家分享一下股票数据可视化的一些基本方法。 股票数据获取 目前&#xff0c;我已知的使用python来获取股票数据方式有以下三种: 爬虫获取&#xff0c;实现…...

2025年湖南建筑安全员 C1考证刷题题库

湖南建筑安全员 C1 类的练习题&#xff1a; 1、塔机的拆装作业必须在白天进行&#xff0c;不得在&#xff08; &#xff09;情况下进行。 A. 夜间 B. 大风 C. 浓雾 D. 以上都是 答案&#xff1a;D 2、采用钢筋混凝土灌注桩时&#xff0c;开挖标准是桩身混凝土达到&#…...

【Feign】⭐️使用 openFeign 时传递 MultipartFile 类型的参数参考

&#x1f4a5;&#x1f4a5;✈️✈️欢迎阅读本文章❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;本篇文章阅读大约耗时三分钟。 ⛳️motto&#xff1a;不积跬步、无以千里 &#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;&#x1f381;&#x1f381;&a…...

ToolsSet之:梯度色板

ToolsSet是微软商店中的一款包含数十种实用工具数百种细分功能的工具集合应用&#xff0c;应用基本功能介绍可以查看以下文章&#xff1a; Windows应用ToolsSet介绍https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Media菜单下的“Gradient Palette”工…...

Apache Hive和Snowflake的`CREATE VIEW`语法和功能特性整理的对比表

写一个Apache Hive中CREATE VIEW语句转换为对应Snowflake中CREATE VIEW语句的程序&#xff0c;现在需要一个根据功能的相似性对应的Apache HiveQL和Snowflake SQL的CREATE VIEW语句的表。 以下是基于Apache Hive的CREATE VIEW语法规则构造的所有可能合法语句实例及其功能说明&…...

【测试】每日3道面试题 3/31

长期更新&#xff0c;建议关注收藏点赞。 单元测试策略有哪些&#xff0c;主要内容。 白盒测试黑盒测试基于异常和边界的测试 主要内容&#xff1a;测试用例设计、执行、结果分析、自动化beta测试和alpha测试主要区别 主要区别&#xff1a;测试环境测试者 alphabeta时间先后测…...

用 Hugging Face Spaces 打造哪吒的 3D 模型:完整指南

引言&#xff1a; 哪吒&#xff0c;这位中国神话中的传奇人物&#xff0c;以其独特的形象和故事深受人们喜爱。如今&#xff0c;通过 Hugging Face Spaces 提供的 TripoSG 工具&#xff0c;我们可以轻松创建哪吒的 3D 模型。以下是详细步骤&#xff0c;帮助你将这个神话角色带入…...

鸿蒙应用元服务开发-Account Kit概述

Account Kit&#xff08;华为账号服务&#xff09;提供简单、快速、安全的登录功能&#xff0c;让用户快捷地使用华为账号登录元服务。用户授权后&#xff0c;Account Kit可提供头像、手机号码等信息&#xff0c;帮助元服务更了解用户。Account Kit提供的SampleCode示例工程体现…...

美团小程序 mtgsig1.2 拼好饭案例 分析 mtgsig

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 美团网页、小程序、app全是指…...

hadoop集群和常用命令

Hadoop集群的搭建与管理 1. HADOOP简介 Hadoop 是一种用于大规模数据处理的大数据框架&#xff0c;支持通过简单编程模型实现跨计算机集群的数据分布存储和计算3。 2. HADOOP集群部署过程 (1) 解压并安装HADOOP 在虚拟机环境中&#xff0c;可以通过解压缩方式完成Hadoop的安…...

爬虫:基本流程和robots协议

基本流程&#xff1a; 1.确认目标&#xff1a;url:www.baidu.com 2.发送请求&#xff1a;发送网络请求&#xff0c;获取到特定的服务端给你的响应 3.提取数据&#xff1a;从响应中提取特定的数据 4.保存数据&#xff1a;本地(html,json,txt)&#xff0c;数据库 获取到的响应…...

python之三种去重方法

1. 数据读取与参数解析 代码片段 detail pd.read_csv(detail.csv, index_col0, encodinggbk)数据实例 参数详解 index_col0&#xff1a; 作用&#xff1a;将第1列设置为索引其他选项&#xff1a; None&#xff1a;不指定索引列&#xff08;默认&#xff09;列序号/列名&…...

QML输入控件: TextField(文本框)的样式定制

目录 引言示例简介示例代码与关键点示例1&#xff1a;基础样式定制示例2&#xff1a;添加图标示例3&#xff1a;交互式元素&#xff08;清除按钮&#xff09; 实现要点总结完整工程下载 引言 在Qt Quick应用程序开发中&#xff0c;文本输入是最常见的用户交互方式之一。TextFi…...

Visual Studio | 性能探测器

文章目录 一、性能探测器1、核心功能2、数据采集3、数据分析3.1、CPU分析 前言&#xff1a; Visual Studio&#xff08;VS&#xff09;提供的性能探测器&#xff08;Performance Profiler&#xff09;是一款强大的工具&#xff0c;它能够帮助开发者分析应用程序的性能&#xff…...