00:00
个来看一下请求啊,这是手册的地址。请求啊,就是为我们提供了一个request的一个类。我们所有请求相关的啊。数据都可以通过这个类的一个对象去查看。当然在使用的时候,我们不必要去啊,使用new去创建这个类相关的对象。可以使用这个。服务容器的一个自动注入,也被称为是依赖注入。在学习之前呢,我们先创建一个text的控制器,用于进行练习我们的代码。牛批@。Make crl的。杠杠。创建一个单控行为的一个控制器。
01:03
嗯,少了一个控制器的一个名字。Cast。C。好,我们创建一个开始的控制器,是一个单行的控制器。这时候可以在。这里面看到我们的test control。然后为他分配一个路由去root。外部里面。嗯,在这写啊。测试控制器。用于测试。单行为控制器的话,我们不用指明这个控制器的一个方法,直接写控制器的类名就可以了。Control。
02:01
这就可以了。先进一下此事。请求一下test。好,接着我们就会在这个方法里面去练习我们的代码,嗯,刚才说到。我们如果想接收用户的这个请求啊,包括用户啊提交的查询数据或者表单提交的数据的话啊,都是可以使用提供的这个request类。这个是request类呢,它包含了这个用户。请求所有相关的一些数据,包括请求的地址啊,服务器啊。啊,所使用的一些浏览器啊,包括要请求传递些参数都在这个拉,我提供的这个attp request类里面啊,但是呢啊。我们在使用的时候不用去啊,通过new关键字去创建这个类的对象可以使用。
03:04
啊,这个服务容器的自动注入,我们也被称为依赖注入,也就是说在方法的啊参数里面写上我们需要的这个快测类啊,并且呃,写上一个变量,它会把我们需要的这个类自动帮我们16滑一个对象,就是给到这个变量。那我们尝试一下。啊,这里已经已经我们写好了啊,所谓的依赖输入就是说我们就是说请求我们这个方法,我们这个方法需要什么呢?需要这个类,需要这个类,然后我会再给一个,再给一个这个变量,这样的话,当我们求求的方法因为依赖于这个类,所以说它会自动帮我们把这个类初始化一个对象给到这个变量,这时候我们是直接可以使用这个变量的啊,我们可以打印一下这个变量,看看都有什么数据。嗯,它就是request的一个对话的一个对象啊看一下。可以看到它是request的一个对象,里面有我们请求所有相关的一个,呃。
04:00
数据啊,包括这个查询的一个query的一个数据。包括。这个request里面的这个表单提交的一些数据。啊,所以我们所有请求相关的啊,都可以使用这个。对象提供的一些方法去实现,接着来看一看我们常用的方法有哪些。嗯。嗯,这里就是说提示一下,如果我们的路由需要这个啊,有路由参数的话,而且同时我们要使用了这个依赖注入,我们又把路由的参数放到依赖注入的后面,假如我们的这个test啊需要一个ID参数,嗯,这个时候我们要把这个ID的参数放到这个依赖注入的。这个后面这样是同样拿到这个ID的。看一下我们滴滴这个ID。Test里面的。是这样的吧,可以拿到啊,这个要注意一下,要放到这个依赖之相的后面。
05:00
这里我们就删掉啊。把这里也就删掉。接着就说一下request我们常用的它的一些方法。获取请求的路径。可以使用它的pass方法,Pass方法呢会返回请求的路径信息,比如我们请求的是这个地址,它会给我们返回啊,就说除去域名之后的这个路径。试一下。这些。请求路径,这就是DJ了啊,Request里面的pass。看一下。不要这个参数啊,没有这个路由。这个就是我们出去域名之后的一个路径。
06:04
啊,还可以使用is方法,可以去判断我们这个路由请求的啊,这个路径是不是和我们。这给定的这个路径相同,可以使用心去做这个通配符匹配后面的所有的。接着看一看请求的URL。呃,请求的URL呢,它有两个,一个是URL,一个是for UI URL呢是不包含查询条件的,而这个for呢,是包含查询条件的。呃,先看一看。这个不保存这个查询条件的。你滴滴一下这个号。在这里面啊,同时写上一个查询的条件,比如说name等于。com。上一个的这个滴滴没有注释啊,它下面代码没有执行注释掉,看一下。是不是只返回了这么一个软二,并不包含后面的查询参数。
07:01
而使用这个。For URL,它是会返回完整的一个请求的一个地址,先把这个注释掉。来浏览器中看一下。是不是把完整的这个U2就给返回了。啊,这是关于请求的这个URL。然后是请求的这个方法。通过这个request method。可以获取到用户是用什么方式请求的啊,我们的。这个控制器啊。请求方法。因为我们有时候一个控制线,既支持post,又支持get。啊,这时候呢,就要判断不同的这个请求方法去做执行不同的一个操作,用这个就可以啊。啊,是get,当然浏览器中我们只能发起这个get的请求,这个地址栏里只能发起get请求,啊,Form的话只能通过表单。
08:07
啊,不过我们可以使用我们的postman进行测试。先复制一下这个地址。然后我们在postman里面,嗯,把这个地址给粘贴上,换一下其他的一个。请求的方式去看一下。这里输上我们的测试的这个地址,现在使用铺的方式进行请求。这里预览不出来啊,它实际上是就是。啊,就是说我们的这个put方法不支持啊,因为这里我们定义的就是get嘛,如果你把它改成any呢,就支持所有的一个请求了,现在来看一下。啊,419PO就是po的话还是需要一个啊。
09:00
这个CS的一个认证啊。也如,那如果出现这种认证呢,也简单,我们先把at里面克隆里面的这个认证的中间点先给注释掉啊,最后我们再打开不就完了吗?注释掉这个。接着去看一下。是不是看到put对不对,这时候我们就随便你换其他的方式都是都是可以获取到对应请求的一个方式的。Post啊,有时候因为我们有时候一个方法,如果支持很多的请求的这个这个方法的话啊,要根据不同的方法,可能就是判断去执行不同的一个业务逻辑。这里测试完之后呢,就把它给它给打开。接着来看啊。当然还有更简单的一个方法,就是使用这个is method啊去判断。啊,是不是对应的一个方法,如果我们就是说使用这种方法的话,我们可能会使用,比如说is if method。
10:03
啊等等于get要这么去写对不对,有时候你啊写成小写了,可能就不通过了,因为通过我们的打印,我们来看看他是一个大写的是不是。现在没有打印啊。把这个注释角我们打一下它你看看。它是一个大写的对不对,有时候你一不注意写成小写了,就可能会出问题,对吧。好,这时候我们可以使用什么呢?可以使用啊,Request提供的啊,1METHOD方法去判断是不是对应的方法,判断请求方法。嗯,写个S吧,比如说request里面的is master,然后我们判断是不是get请求,找答案意思。
11:00
可以看到返回的处是不是对吧,那即使我们不小心写成了小写呢。看一下是不是一样的,所以使用这个方法的话,判断一个是比较快啊,因为你要用上面还要进行两步,一个是先取出来,然后再去判断嘛,对吧。然后这个我们可以直接使用它进行一个判断。再看看还有什么常用的方法,不太常用的我就直接跳过了啊。好,接下来就是说说这个。呃,我们用request的最比较常用的功能就是获取了这个用户的一个输入。用获取用户的输入,输入的数据呢分两种啊,一种是用户通过guest这样URL传传过来的,我们称为这个称为查询字符串,还有一种是通过表单。啊,通过form表单提交过来的这个我们称为啊传的一些啊表单的一些参数,他们所就是在level里面,这个request里面,我们可以使用同样的方式去获取啊,当然也有各自的这个属于各自的方法去获取的,你一一看一下,首先使用O可以获取啊这个一个数组类型的全部的输入这个数据,也就是他会把我们这个所有的输入数据帮我们转成这个数组。
12:19
获取。输入的数据啊。输入数据,然后获取所有,可以使用on获取所有。我们直接来打一下啊request or。它会给我们转成一个数组。浏览器里面看一看。啊,是不是拿到了,如果我们还有。啊,其他的一些参数的A减等于12。嗯,都拿到了是吧,这是get的这个query传参使用request是可以拿到的,那我们再测试一下post的这个表单的一个数据的一个提交,看是不是能拿到。选择我们的post还是这个地址啊,当然在测这个POS之前呢。
13:01
嗯。还是要把。我们的验证的中间点,先给注释一哈。接着。这个query参参我们就不要了啊,Post的方法的话,我们一般是表单提交它的这个数据是放在这个body题里面,我们在这里啊,点body,然后使用啊form date去提交我们的,就是模拟我们表的一个数据,使用post。然后我们提交。这个。还是用内部吧。换一换,没有a at a.com,然后再加一个。这个头像啊。那是头像的地址,是这个。好,就输一个百度的地址吧。啊,这时候我们去向这个地址发起请求。
14:00
可以看到我们的这个参数一样是拿到的,对吧,所以这个凹的话是可以直接拿到所有的一个。这个输入的数据啊,并且它是一个数组的一个形式。嗯。接着看一看,嗯,其他的获取输入的一个方式,还有一个是呃,Input啊,就说我们如果只是想简单的获取一个的话,就可以使用input获取对应的一个啊,如果我们获取了这个参数不存在呢,可以给一个默认值,它会默认使用这个值。啊,当如果我们传的这个数据有数组的时候。啊,可以使用点去来使用这个数组里面的某个键啊,获取这个数组里面某个键反数这个数据。看一下。你铺的获取指定字段的。指定的数据还是滴滴一下request。
15:04
音菩萨。先拿谁呢?我们先拿name啊,看一看get里面我们传的这个name,就是说get方式的传插能不能拿到。可以拿到,是不是接着再尝试一下什么呢?嗯。Post里面我们提交的这个email。看看能不能输出post,我们要用post慢来测试啊,使用post方法。是不是一样可以拿到,对不对,所以我们的隐input的它也会就是说去支持这个get和POS的方式比较方便,那如果我们取得某个字段不存在呢,就可以给一个默认值。假如我们取。一个人的一个性别啊,这个性别呢,我们是不存在的,先看一看不存在的一个情况,它的返回一个值。呃,还是在POS里面直接测试吧。啊,当然你在get里面这个浏览器里面去测试是一样的啊。啊,这个是不存在,这时候我们可以使用一些默认值,比如说当取不到这个性别的时候,我们默认使用这个男。
16:06
啊,这个时候可以看到。啊,这个第二个参数给一个默认值啊。接下来就是呃,Get请求,还有就是post请求,分别的一个方法,比如说从查询字符串里面输入,我们可以使用这个query啊query的话呢,你就只能从这个get里面拿了查询字符串。看一看。复制一下。这里先注释掉啊。嗯,就右下query,从啊查询字符串中获取参数。这个变量我就不写了,直接request name。刷新是不是拿到我们这个套了,对不对,那如果你在POS里面去去这个使用呢。
17:04
是不是就没有没有拿到。啊,因为我们是从查询字符串里面去拿嘛。拿这个参数吗。一样的啊,它也会啊,给这个就是可以给一个默认值,如果取到我们的这个参数不存在的时候,会使这个值。嗯,也可以使用,就是没有参数的获取全部的查询的一个关联的一个数组。啊,都是可以的啊。嗯。还可以使用什么方式获取用户的一个输入呢?还可以使用这个request啊,直接通过。这个类的这个属性的方式去拿到我们表单获取的就是说提交的一些输入。就是关于这个的话,呃,推荐大家使用这个input啊。他既然可以拿get,也可以拿这个post,比较好记,很方便。接下来看一看。
18:02
这个。使用动态属性啊,动态属性。获取输入输入的数据动态属性呢,就是直接使用这个request,然后以以对象的形式去拿它的这个对应的参数就可以了。看一下是吧,一样是可以拿到的,比如把它换成A级。是不是?好。同样的啊,如果你获取的是一个JS的输入,它跟数组所有些类似啊,可以使用点的方式啊。布的输入的话,可以使用这个布。嗯。关于这几个输入的方式,嗯,包括这个动态的通过属性的一个输入。
19:00
啊,包括我们使用这个银铺的,还有还有一个是手册没有说,甚至我们可以通过这个数组的方式去获取,提交这个数据就使用数组。来获取。输入到数据啊request,哎,这是我们拿这个内还是拿name。是不是要拿到了啊,关于这几种,这三种啊都是可以的。都是可以的,推荐使用input啊。因为有时候你提交的表单的字段可能会和request它里面啊,自己有一些属性啊,名字会冲突。获取部分,获取部分提交的一个数据啊,数字数据。也就是说我们可以对用户输入的数据进行一些啊,比如说啊,只获取这两个字段,或者排除这个字段,这时候有时候排除一些不需要的字段就比较好用。假如我们的一个。
20:11
啊,份表单的一个提交。啊,有时候就是。他要是进行这个CS的认证,就是我们开了这个中间键的话,它要进行这个csf的一个认证,这时候我们要给他一个传入一个talking是不是啊,它实际上就会有一个这个talking的一个字段,然后是很长的111串的一个这个这个talking啊,这时候我们如果提交到这个后台。啊,但我们想拿到所有的数据,但是不想要这个传到这个talking怎么办呢?啊,就可以使用啊,这个only或者这个except,一个是仅支持什么,仅获取什么,一个是排除什么不要什么。来看一下。嗯,你使用request啊,肯定是拿到所有了,那talking也拿到了,对吧,但是我们不需要这个字段。哟。
21:01
Dota。滴滴request。那使用。先看一下only only,一个数组,我们只要谁呢?只要以M和。头像。请这个测试。是不是只拿到这两个字段了,就把talking过滤掉了,对不对?或者说呢,你怎么写呢。使用这个except。排除掉talking啊,或者这么写也是可以的。看一下。效果是一样的啊。嗯。嗯。最后就是再说一下这个关于这个输入,判断这个输入值是否存在。
22:02
也比较实用。是否存在啊?使用has可以啊,包判断包就是当前请求的有没有这个值,如果有的话就会返回处,如果没有的话就返回false。嗯。直接滴滴啊。看我们当年请求有没有这个name啊。有是吧,数好,我们把name的值给成空,可以看到还是数是不是,它只会判断你有没有给这个参数,它不管你的值是如何。啊,如果我们不给的话,他才会真的是false。同样的,有时候我们想要做一个处理,比如说我们想要啊,保证你的值必须你的参数必须必须给我传,并且你的值也必须不能为空,可以使用什么使用啊。啊,这个啊,Field判断一个值是否存在,并且不为空就成field。
23:03
前面这两个是关于has的方法的,其他的一个使用,比如说啊,判断多个字段,你加上数组。对吧。啊,还有就是说啊,只要任意任意一个条件符合就行。你就使用hasna啊,这里我们就演示一下这个啊。啊,这个是。传的这个参数啊,他只看这个参数存不存在。嗯,还有一个这个。把代码精简一下。这个注释掉这个呢,它是就是要参数存在。并且不能为空。才行啊,看一看啊。
24:00
当然,现在我们内给的有值,肯定是处,一旦我们的这个内不给值啊,我们只是传了一个空过来,它就是false。这两个判断值存不存在的时候还是比较常用的啊。旧数据啊拉,允许我们在两次请求之间去保存这个数据,之前我们写的登录注册也是利用这个特性,它把我们的这个啊之前输入的一些信息啊给我们闪存起来,并且在抽形反馈的时候,我们可以使用O辅助函数去显示到啊表单中。呃,关于这个闪存数据,还有这个,呃,返回的时候如何携带旧的一个输入的话,我们再进行,就是说讲这个响应的时候会进行讲解。呃,关于这个文件上传的话,会在后面的有一个讲图像上传,讲文件上这块也是进行统一的一个讲。
我来说两句