00:00
那啊上午呢,我们说了一下怎么来处理这个请求,哎,包括获取请求行啊,请求图啊,还有请求题里边的内容,哎最主要的呢,还是获取请求参数,因为我们这个前段发过来这个请求,哎之后呢,我们需要得到里边有用的数据,然后呢对数据进行这个校验等等这一系列操作啊最后呢,还说了一下怎么来给客户端响应,我们用这个response writer调里边的方法,比如这个write方法呢,我们可以给他响应一个字串,当然了响应一个页面下面页面诶也是可以的,而且他能帮我们检测出来,诶这个是什么类型的啊,这个数据,那如果要是想应一个杰son的话呢,你需要指定一下这个响应头,那就告诉他要响应过来一个Jason格式,那除了这些我们手动的来调这个right方法之外呢,我们也可以把一个现成的一个页面诶响应给他,哎,那就是我们接下来说的这个模板引擎,通过这个go的这个模板引擎呢,我们可以把一个有这个模板,我们就是我出一个诶。准备好的一个页面,我们把它作为一个模板,然后呢,把它显给我这个客户端,哎,也是可以的啊,哎,来看一下我们这个啊,使用这个go的web一个模板引擎,我们需要用到go的两个包,一个是text template,还有一个h t template,我们来打开它,我们看一下啊。
01:18
打开这个中文版的这个文档。Text template text template这个啊这个,然后下边呢,有一些actions这些动作啊,我们后边再说这个动作啊,这个最主要的我们还是用这个HTML的一个temp这些变量定义变量,包括这个例子啊,这些都是这个后面我们要说的动作的一些东西。然后呢,这里边也说了啊,这个呃,如果要生成这个ADM格式的一个输出,这个包呢,实现了输库驱动,用于生成什么文本输出的一个模板,嗯,就是我们这个呃勾里边的模板引擎里边的啊,这个这个text time play的这个包,生成这个文本输出的一个模板,那如果要生成at tml是这个输出呢,我们这个来看这个HTML,这个timeate的包来看这个包,我们来找一下这个HTML的。
02:19
哎,点开它,哎在这个包里边儿,哎这个。我们来看一下啊,这个包呢,实现了数据库驱动一个模板啊,用于生成呢,可对什么输入安全的ATM输出,也就说我们现在呢,比如创建的是ATM页面啊,我要这个通过这个拿到数之后呢,把数据跟这个模板比如结合一下,最终的想应到这个,呃,浏览器端,我们就需要用到这个包里边的内容了啊这个包里边的一些方法,那下面呢,我们来看一下啊,这里边的这个核心的一个方法。LF翻。And that。Template,嗯,Template这个结构体啊,结构体这个它里边呢,这个must啊must这是嗯在我们这个执行这个嗯模板的时候呢,这个用这个ma函都可以报一下,就说的,如果他要出现这个呃闹啊哎或者出现错误的话呢,他能帮我们这个来解决这个错误啊会拍尼会panic一会我们再来用这个啊,我们先用个,我们先先看下边这个核心的方法叫pass files。
03:18
Pass files pass files呢,这里边呢,传一下你的这个模板文件,比如你这个传了一个atml,当然了,这里边可以传多个啊,可以传多个这个模板文件,嗯,这个它会呢,呃,这个函数呢,会创建一个模板,这个模板并解析这个files指定那个文件里的一个模板定义,因为我们这个模板里边呢,可以定一些这个动作,就是这个里边的一些那个后边我们讲的一些格式啊,就两个大块括起来的里边那个S成为一个动作,还有动作它也也分好多种啊返回的注意啊,虽然这里边呢,可以传入好多个这个模板文件,但是呢,诶你调这个方法中呢,它返回的模板的这个名字呢,是第一个文件的,这个文件名是第一个文件的,即使你传了再多啊,它这个最终呢,是第一个文件的啊,第一个文件的,因为这块呢,可以可变的嘛,可以传多个文件啊,可以得传多个文件内容,诶这个我解析第一个文件的一个内容,也就是说即使你传的太多,默认情况下,哎,它这个哎得到的这个模板啊,是第一个文件的这。
04:19
这个文件名后边的,哎,不是,而且那个内容呢,也是第一个文件里面这个内容啊。而且这至少啊要提供一个文件,如果发生错误呢,会停止解析并返回这个尿啊返回这个new,就是返回一个空的啊返空的,那有时候我们为了这个防止,比如这个它解析的时候出现这种呃出错啊,或者是返回这个出现一个no啊,我们会这个在外边包一下啊,用这个ma包一下这个must,很多就会包装返回的这个,嗯,你这个time time啊,这函数的方法来调,你调它的时候呢,外边再包一个must,这个时候出现这个no啊,或者是出现错误的,它能把我们这个诶处理啊,能把我们处理这个异常,或者是闹这个返回值就是这个pass file。下边还有一个啊,呃叫passlo,这个是干啥的呢?呃这块呢是指定可以指定多个模板,那这块呢,你可以指定一个规则,比如呢,我要解析这下面所有的这个HML这个页面啊,这块你就就可以指定一下什么星点HML或者什么什么哎点或者哪个文件夹啊,所有的这个文件,就这块只需要传一个传一个规则就可以了,这块是指定一个一个的具体的一个文件,比如什么hello点13L hello1.3l hello2.13L,那这个方法呢,就是你指定一个呃这个规则,比如这一块有个Python有个路径,比如呢,我要解析这个配这个目录下所有的这个页面,或者是某个目录下所有的,你就写一个什么配置斜杠,什么星点HTL啊等等,就类似的啊,这样的一个,你可以指定一个这个也就一个表达式,你可以认为一个规则,然后呢,它就能自动的去解析某一个啊文件里边的所有的这个呃,文件了,就作为这个模板文件了啊模板文件了,哎,这是这个这两个啊,这两个方法其实我们用的最多的就是这个啊pass files来。
05:58
解析这个呃,你指定的那个模板文件,然后呢,得到一个模板,只是呢,你注意这里边呢,可以传多个文件,但是呢,它默认返回的是第一个,当然了啊,我们也可以这个。
06:10
来这个告诉他指定哪一个,那这个时候呢,就得用这个template了,因为它解析这个文件之后呢,返回一个template,就是返回这个模板,我们来点开它啊,点开template。Temp里边呢,有一个它有一个执行,我们再往下往下来走啊。啊,在这,哎。哎,执行,那你这个得到模板之后呢,你需要这个,呃最终呢,把那个模板跟这个呃这个数据,你比如得到这个数据呢,把它两个这个你得结合一下,诶就是这个解析完之后呢,根据那个我们最终的那个W,就是HTP的write response write,把它两个就绑定在一起,最终呢,响应到这个客户端,那所以呢,诶我们就需要调这方法来进行执行,执行这块呢,就需要有一个这个I点一个writer,就是我们那个W了,传入W之后呢,你在第二个参数里边,你可以传入一些数据,比如呢,我最终呢到达这个页面,到达这个呃模板,诶到达这个HM页面之后呢,你想带入一些什么数据,你就可以在第二个参数这块呢,也传入进去了,可以传一个字符串,或者换传一个其他类型的也都可以啊,传进去之后呢,我们在页面上就可以对这个数据呢进行处理了,诶通过它一个叫动作的一个这个呃。
07:23
东西啊,来处理这个,哎,有关的这些数据啊,这是这一块啊,这个那下面还有一个time play,那这个是干什么的呢?因为我们这个上边啊pass files里边呢,可以传好多个文件,就传好多个这个模板文件,那如果要传多个,因为它默认呢,这个得到的是第一个诶。得到的是这个第一,这个模板得到template是以第一个文件作为这个名字,那我们也可以干什么呢,让他。你第二个就是执行直接把这个数据最终最终呢,以这个想象到这个第二个这文件里边,那我们就可以调这个方法SQ template,诶同样前面这个参数是一样W后边呢,你传一下那个。
08:03
模板的名字啊,模板名字,因为这个按传的多个文件,虽然呢,它最终呢,这个返回的这个template是以第一个这个文件作为名字的,但是后边的那些文件呢,它会放到一个map里边,会放到里边,不是说他就不管了啊,会放到里边,那如果这个时候呢,想这个执行,比如后边的那些文件,诶就调这个SQ temp play的,然后呢,传一个W,把那个后边那个文件呢,比如这个模板的名字传进来啊,最后呢传一个数据,那之后呢,最终在客户端显示的就是你指定的那个模板,诶那个诶那个页面了,就那hello,本来这个这里边传了一个hello和HELLO2,那你这个时候这一块传一个HELLO2,那最终呢那个呃信息呢,就会在HELLO2HELLO2那个页面上显示出来啊,所以这里边的这个呃三个啊,相当于三个核心方法,一个是pass files,一个是还有templl,那这个就是你要呃,为了这个简单啊,要传多个文件的话,简单的话你可以制定一个规则,比如什么星点什么什么,如果你们都是A页面的话,你可以什么星点A页面对吧,所有的A面都相当都传进去了。
09:03
好,那下面我们就来这个,呃,写一个啊,写一个简单的,也可以认为是一个hello word来给能给前端一个响应,就不只是我们上午那种了啊,直接用一个right这个W调一个right这个方法来写这个字符串了,我们直接比如拿一个现成的页面,哎,把它作为一个模板啊,最终呢,哎在模板上,比如让让这个客户,让客户端能看到一些内容啊,后台给我们转回的一些内容。好,哎,这样啊,我们再来创建一个。给它创建一个这个文件夹吧。Time blade。好,诶,我们在这呢,来创建一个文件。哎,来一个报名。
10:00
来一个函数。我应该这个复制了啊,不想写了。直接删掉复制一下啊。每次每次都写。声音我关一下啊,这太响了。来,我们把上午的那个来粘一个过来。我们的首页和这个慢点go我们都粘过来。CC,拿过来。好拿过来之后呢,我们把它改一下。这些东西呢,用不着了啊。留一个,留一个处理器。留一个,留一个短的吧。把上面这些呢都删了。好,哎,然后下边这一块呢,哎,我们这个,哎把这个。删了也留一个一个template。
11:05
倍的好保存。那现在呢,我们这里边有个页面有一个index.html,然后呢,我把这里边的内容呢先删掉。删掉,哎,假设呢,于现在这样的一个页面,那我最终呢,你这个请求发过来之后呢,比如说我最终想把这个页面给你显应过去,呃,不直接用我们这个W点这个rise的方式给你写了,因为我们这个上午这个虽然没给大家演示啊,给大家说了,我们也可以写过去,你整一个这个,呃,字符串里边呢,签到的,呃写的就是这个ATM页面,然后呢,直接write过去就可以了,在这个浏览器你也能看到这个页面里边的内容,而且你右键查看源代码呢,也能看到这个ATM码跟标签,然后还版辑标签,但是我们现在已经有现成的页面呢,我们就可以直接把这个页面呈现到这个用户面前,那怎么做呢?我在这先写一句话啊。写一个什么呢?哎呀,我比如我是这个模板文件。
12:00
嗯,中的这个内容好哎就这样了啊哎,写一个他包点里边就写一个他那现在呢,我也想把这个页面呢,注重在这个客户端,哎客户端客户发起说最终呢想响应到客户端啊怎么办呢?我们需要在这个呃处理器里边来写我们这个对应的代码。我把这先都关掉啊。我们来打开哦。这个我们打开我们这个啊,慢点够好。Test timel,嗯,这块呢,我们写一个这个处理器,Test一个timel。IAM。长城C往上翻。把它改成test template好哎,除理一些函数,那这这呢,哎这些东西呢,就不需要要了。哎,我们来写这个注释啊,第一步干什么呢?哎,解析。鲁班。那就掉我们这一个啊,调我们这一个,呃。Pass files这个啊方法了,嗯,就调这个pass files这个方法了啊里边呢,你传一下这个,传一下这个模板文件,嗯,当然呢,你这个可以传多个,因为我现在呢,就一个包括我们这个word上面啊,这个下边也给大家写出来了,这个步骤第一步呢,我创建这个文件,只是我们现在是以这个上午的那个以ex为例了啊,那下边这个这这里边的这这是这个页面里边这个叫动作啊,一会我们再来说啊这个呃,它里边呢,里边这个点就是后台传过来那个数据,我们通过这个点它就能显示后台显要的内容,当然了,你这个显要一个什么,它就是什么了,就是还可以是一个呃集合,我还可以是个map,还可以是一个切片,还可以数组等等啊,我可以编译啊,前在都可以编译,我们后边再说啊,下边这块就是这个,呃,处理器里边这个,呃,这个。
13:48
核心的一个代码了,用这个template调一个这个pass files啊调这个方法一般你把那个模板文件传进去,弹进之后呢,就得到一个template了,那得到template之后呢,下面我们需要执行,那执行的时候这块你可以传空,诶如果要传的空的话啊,它直接最终呢响应到这个,呃,在客户端会显示这个页面,那显示这个页面,因为我们这个在那个模板页面里边啊,没有写这个动作,所以呢,我们只看到那里边写的那个文字,等一会呢,我们再用那个动作啊,就是两个大符号中间一个点那个啊一会我们再就给大家测试啊,我们这个写的时候呢,先把这个块传空啊,把它传这个空的,哎,就是这样很简单的两行啊,用这个time play呢,调下这个pass files,把那个模板文件传进去就行了,它解析之后呢,就会得到一个这个template,这个templ的名字呢,也是啊,我们这个文件那个名字。
14:35
我把这个写一下啊。Template,这就是那个HTML template那个包下的了temp第二一个什么呢?怕。Fair里边传一下我们这个index,点一个HTMLHTML这块我们把这个包导一下吧,自己导一下吧。
15:00
嗯,这个HTML。不倒,没有提示算了。得到一个。HTML template。Pass,那肯定写错了。20。点一个。Pass files pass files里边来一个index,一个HTMLHTML来返回一个这个template,还有一个error。我们把这个艾先忽略了啊,就不要了,等于它得到哎解析模板,哎解析模板,那得到解析完模板之后呢,下边我们就需要来执行了,哎执行之后我们就能看到这个模板里边,哎这个内容呢,就是在客户端啊,我们就能看到它了,所以呢,来下一步我们来这个呃执行。直行用T点一个。Exclude,哎里边,哎,我们传一个哎W就是输出的啊,输出的后边的就是传这个数据了,哎传数据当然了,我们现在先传一个空的啊,什么都不什么都传啊,什么都传好诶那这个呢,两行的核心代码啊,我们已经写完了,第一步呢,我们需要解析这个模板,就是模板文件啊,解析这个模板文件,解析模板文件之后呢,第二步,哎,我们这个来执行,执行的时候你就可以串数据了,最终呢,它会把这个数据。
16:19
哎,把这个数据跟模板文件这个绑定在一起,然后呢,再通过这个W,就是我们这个输出啊,输出流呢,最终响应到这个,呃,客户端啊响应到客户端,好,那现在我们来测试一下它。啊,终端打开,我们来执行一下这个勾点一个。Build慢点,一个够。慢点,一个exe。诶,怎么没有启动成功啊。诶,怎么起不来了服务器。
17:03
为什么不能在这行啊,我们不是一直在这起的吗?在资源管理器里。我们不是一直都在一起的吗?好了啊,好了好了。这个ES文件不是双击打开就行了吗?是吧,我们在这也能启啊,直接访问它就可以了,好,那现在这个呃,服务起来了,起来之后呢,我们来访问一下这个test template,看能不能看到我们这个里边这个index.temp页面啊,CTRLC。LOCALT8080斜杠。Test一个template,好,诶这时候呢,啊,我们就看到了这个给我们提供的这个模板,点一点里边的内容,当然我们现在啊,后台还没有传入任何数据。比如呢,如果我要传入这个数据,在这一块,假设我这。
18:06
哎,在这哎这块我想我传的是空啊,我传的是空,那比如我要传一个,比如hello,哎,Timel。我要传的是它,那传完它之后呢,在这个页面里边啊,在这个,比如这个最终的,呃,我们这个模板页面里面怎么来拿到这个数据呢,我们就需要用到一个,呃,教一个动作的一个东西啊,在这里边我们这样哎,比如说哎写一个什么呢,后台。后台这个。呃,传过来的这个数据是,然后呢,两个大括号里边一个。点诶里边有个点,这个点呢,就代表了后台传过来的那个数据,传过来那个数据你传的是什么啊,这块最终呢,显示的就是什么了,好,那现在我们再来一次啊,CTRLC。标的慢点,Go。哎,慢点一个exe。好诶再来我们现在呢,再来刷新一下,诶这时候呢,哎就看到了啊hello time,那这个呢,就是我们后台这个传过来的这个内容,那当然了啊,比如呢,我这个假设这个重复呢,查到了所有的个用户啊,肯定得到了一个切片,那得到切片之后呢,你在这肯定要需要便利啊,便利呢这是是个动作里边的内容了啊,有什么条件的,还有什么这个循环的等等啊有好多啊有好多,那么后边哎后边再说这个动作啊来说动作像这一块啊对这个呃呃,模板文件的一个处理这块,嗯,显示的不是很好看是吧,我换个行啊。
19:34
B,哎,这样就好看了,对吧,来刷新一下。诶,这样就没问题了啊,哎,后台传过来的数据,Hello templ的就是我们这块啊这个怎么来这个对现有的就是怎你可以认为是怎么样把我们比如用现有的这个页面呢,比如作为一个模板文件,作为一个模板文件,然后这个呃,购物的这个模板引擎呢,最终呢,把数据跟这个模板文件比如结合起来,最终呢,把它响应到这个客户端,好那下面我们来简单的看一下这个整个的一个过程啊,就刚刚我们写的这个过程,哎,需要经过下面的步骤,对什么文版文本格式这个呃,模板源,那我们刚刚写的那个。
20:12
进行一个语法分析,呃,创建一个这个经过语法分析这个模板结构,其中呢,模板源既可以是一个组串,也可以是模板文件中的个包含一个内容,那我们写这个模板源,诶就是最终的那个我们写的那个字符串了啊,就刚刚就是那个字符了啊,当然了也可以是其他的,你也可以是某一个另外一个模板文件里边内容,哎,这也涉及到这个我们后边那个动作那块了啊,我们后边再说,那第二个呢,需要经执行这个呃,执行经过语法分析的一个模板,就是我们那个模板啊,然后将这个response writer,就是我们那个处理器函数里边那个呃,WW和模板所需的一个动态数据呢,传递给这个模板引擎,哎,被调用的模板引擎呢,会把经过呃语法分析的一个模板和传入这个数据结合起来,就是我们把那个模板,因为它解析这个模板文件之后呢,会得到一个模板,那个模板的名字呢,也是那个模板文件的一个名字,嗯,默认是它啊,默认是它,它会把那个呃模板所需要的这个呃模板跟那个传入的数据就是最终传的,你想显示那些数据呢结合起来,诶生成个最终的HML,还有啊。
21:13
啊,然后把这个at传给这个W,就是我们那个response writer就中呢们在浏览器上就看到了最终那个结果啊,其实这块啊,我们传的一个,当然你要传两个也是可以的啊,也是可以的,不过它默认的还是以第一个诶作为的这个模板的这个呃名称哎作用第一个文件作为这个模板的名称,那后边的后续的那也它会放到一个map里边,下边也说了这个解析模板,这是这个方法啊,我们这个刚刚在官方文档上面也看过了,这里边内容呢,我们就看不再看了啊,下面呢,我们来看一下这一块啊,当我们调用它这个解析模板的时候呢,都会创建一个新的模板,刚刚我们也说过了,并。给给并将这个呃,给定这个模板的文件,这个名字作为这个新模板的名字,就是你里边传的那个模板的名称啊,就作为这个新模板的名称,要调完这个方法之后呢,它会给你得到一个模板,就是那个T,我们刚刚写的代码里面那个T,如果这个里边传入多个文件名,诶这个也是返回一个模板,而且呢,第一个文件的文件名作为这个模板的名字啊,那其他的就会放到一个map里边,放到map里边。
22:15
下边这块呢,又写了一下啊,又写了一个,呃,还有一个啊,这个我们刚刚写的代码这块templ.pass fair,诶,Pass fair里边传了一个hello,这个模板文件啊,其实呢啊,它相当于这个执行了两部,就是下边我们说的写的这两步来看一下以上代码,相当于调用new函数创建一个新的模板,因为这个刚刚我们说了,你这个调pass file的时候呢,解析这个模板文件的时候,它会生成一个新的模板,哎,这个新的模板的名字呢,就是我们那个文件的一个名字,它会生成一个新的,所以呢,诶,它这中间就有个过程了,你这个创成之后呢,它会帮你造一个模板,诶呃,自动的啊,把你这个创建一个,然后以这个文件名作为这个模板的一个名称,那这个呃,创建好它之后呢,下边再调这个time play的一个pass方法,Pass方法,所以这啊,我们写的这一步呢,就相当于下边这两步,诶time play.new会创建一个这个诶这个新的模板,然后下边呢,诶再解析,哎,再写这个hello点哎这个HTML就相当于这两步。
23:15
所以呢,我们这个,呃呃,解析这个模仿文件的时候啊,其实直接我们这个,虽然我们直接写的这一部啊,其实呢啊,它有中间这样的一个过程啊,呃,就是这个方法,这个new,哎下边这个我们刚刚也看到了啊,其实没有这个带领大家看这个方法,现在呢,我们就在这看一下这个new这个方法,创建一个名为name的一个模板,就你里边传了什么,然后就创建的一个就是呃,就是这个名字叫什么的一个模板啊下边这个passs呢,哎,我们。这个哎刚刚也看过了啊,也看过了,然后再往下就是一个must的方法了,哎刚刚我们也看了一眼啊,这个must方法可以干什么呢?这个在解析模法时呢,哎,这个我们刚刚写的这个代码啊,没有对错误进行处理,我把它给忽略掉了,用了一个下划线,哎把它给忽略掉了,那go呢,提供了一个这个must函数,专门用来处理这个错误,哎,Musts还会可以什么呢?包裹起一个函数,被包裹的函数会返回一个指向模板的指针和一个错误,如果错误不是,哎不是这个空的,也就说不是闹,那这个时候呢,哎,Must还是用panic克,就panic克,也就是说这个,哎你如果这个怕出现问题啊,怕出现问题,因为我们刚刚把那个异常呢,给它是不是忽略掉了,写这个下划线本来是个error,我也没有写一服什么什么等于那来处理它啊,我把它忽略掉了,那为什么我把我忽略掉,因为这个go呢,给我们提供了另外一个函数,另外一个函数叫must,哎,它就是专门来给我们解决这个问题的,哎,你这个。
24:40
把刚刚我们写的那个嗯,这个template点了一个pass file,你把这个放到must里边,就是用那个must把它包一下,那包一下之后呢,最终呢,得到了一个还是template,那这个template它就是返回值就一个了啊,就没有那个error了,也不像我们上面这个pass files有一个template,还有可能出现一个error,那这个error呢,刚刚我把它呃忽略掉了,如果这个我写的时候就不想要它怎么办呢?我们可以在外层呢包一个must,就是这个函数啊,哎,把它包一下,那must函数包装返回的这个呃呃complete类的逗号A的就是说白了就是我们调那个pass file时啊,给它包一下,然后他会在他会这个panic,所以呢,也就是说他能帮我们来处理,如如果这个出现错的话啊,他就停止了啊,停止了panic了嘛,哎,Panic了啊,最终的结果就是这个样子啊,这个月,哎,Must把它包一下哎就可以了,下边就是说这个pass,呃呃,这个格lo了啊这个函数,哎这个函数在这给大家举了个例子啊,嗯,怎么来这个一次性传输都给我们把文件,比如这个里边整个星点。
25:40
那所所有的这个ATM里边跟了好多,呃,这个模板好多ATM页面,那直接呢就能够呢传进去了,你包括下边的这个,嗯,这这个就不演示了啊,这个就不演示了,因为我们这个。哎,现在呢,这个就这一个index,其实传多个默认情况下,它也是只有一个啊,只有一个下边这个SQ的这个方法啊,这个方法我们刚刚也调用它了,这个前面呢传一个W,后边就是你最终呢想这个在前端呢,显示的那个,嗯模模这个模型数据就是那个数据,你最终想在这个呃模板文件里边,哎显示的那个内容,你这传啥,最终呢,我们通过那个动作啊,就可以把它给输出,诶在这个浏览器也是在我们的客户端给它显示出来,哎。
26:27
如果啊,如果只有一个模板文件调用这个方法是可行的,哎就是这个,那如果要是多个模板文件呢,哎,这个调用它只能得到一个,刚刚我们也说过了,那如果我要指定,比如呢,我要指定哎这个把最终的数据,比如就就想这个返回给第二个,那怎么办呢?就不能调这个方法了,就调这个SQ的time play的这个方法了,哎就得调它了啊就调它了,调这个方法你需要指定一下那个呃名字,哎就是你要你要这要把这个数据到底,哎放到这个最终想给结合哪个这个模板文件有,最终他在这个页面上,可能我我这我有好多个这个模板文件,最终后台这个数据有后台这个传了一个数据,到底在哪个模板文件上给给给这个客户显示出来啊,给客户端显示出来,所以啊就得调这个timel了,下边呢,也举了个例子啊,例如你解析了两个模板文件,一个是hello点前L,一个HELLO2点前L,那这时候呢啊,这个变量T就是一个包含了两个模板的一个模板的一集合,那第一个模板名字是hello,第二。
27:27
算的是这个hello hello2,那这个时候啊,如果直接调用它呢,哎只会只有这个模板hello被执行,那HELLO2就不不被执行了,那我如果想这个执行这个HELLO2,那怎么办呢?哎,就是调这个方法,Q template哎,W h2点这个ATM2,哎我要在什么传的数据,这最终要传的这个数据我要在什么hrhhello2.atm中显示,那当然了,这个数据啊,就会在这个hello2.atm了,最终你在客户端看到的也是这个hello2.atm这个页面,你会看到了这个页面啊。好啊,这是这一块这个如何,比如呢,如何这个来把一个模板文件,还有我们这个后台的一个数据,最终呢,在客户端给这个用户呈现出来,以及呢,我们怎么样这个假设,我这个解析就是说解析这个模板文件中传了多个,怎么样来这个执行我们指定的那个就是调的这个方法不一样而已啊,还有这个处理错误这块。
28:22
我们把这块这个啊,这块呢有个挨着,那正常来说我们得把这个给写上,哎,也判断一下到底有没有出问题,那如果我这个想忽略它,让它帮自动帮我们来来做怎么办呢?外层再包一个啥。Must对吧,哎,Must来啊,把这个注掉,外层呢,可以再包一个must,哎,通过什么呢?Must的函数。让什么呢,让狗哎,这个帮我们。啊,这个自动处理异常。
29:00
好,哎,这时候呢,我们同样T,哎,这时候呢,哎,等于。Template,点一个must。哎,调查这个方法,然后把我们刚刚的这个template点了一个pass files,哎把它传过来就可以了,那这主的它的反复值就一个,就一个template,就不需要再什么呢,写那个error了啊,写那error了在这块啊,当然了这个也正常的可以执行啊,可以执行这个就不演示了啊,这是针对于一个的,那如果要我要这个传多个传多个那当然了,比如我们再来一个index复制一个啊。INDEX1好,就这个index改一下。这是后边又多了个点是吗?这个名字多多不爽啊。INDEX2。好哎,Index2.1前面,哎,我这个把这个删一下啊,这个就不要了,看什么呢?诶这个模式。写个什么HTML index?
30:02
2.html中的这个数据。数据是啊,中等数据是好哎保存一下,那现在呢,我有两个,诶,我有两个这个模板文件了,一个是INDEX1INDEX2,然后那现在比如呢,我最终想把那个数据在INDEX2点里边来显示,那当然了。你要再直接传个INDEX2,那肯定是没问题的啊,那如果要传两个呢。等会。逗号,再来一个index2.1个HTML好诶现在呢有两个模板文件啊,我传进了两个模板文件,现在呢,我想干什么呢?啊最终呢,把这个显象数据在INDEX2点A38里边给它显示怎么办?那是不是就不能调这个方法了。哎,将这个什么呢?哎,这个响应数据。在什么呢?INDEX2。
31:01
点一个HTM面,哎,这个呃,文件显示。哎,那这时候呢,我们就得用T点一个cute。Template template这里边呢,哎传三个参数,哎第一个哎是这个哎W。哎,第二个,哎是我这个你要这个最终呢,INDEX2。两边第三个就是我最终那个数据了,比如那我写一个什么啊,嗯,我要在。我要去什么呢?A index。二点前面。好。好,诶写完了,诶不过这种啊,这个你了解一下啊,你了解一下诶,如果这个呃只是一个模板文件的话,那清楚了,因为这个一般我们这个比如从数据库里边查了一些数据,那么就取一个指定的页面,怎么可能取两个页面了,对吧,你就取一个页面,哎,如果你想指定啊,比如这里边当时传了好多个,你这个呢,想去另一个,哎,这个时候你就需要调这个q timel,诶指定一下你那个模板文件啊好,那这个写完之后呢,我们来测试一下啊周C。
32:21
狗逼的,你慢点够。慢点,一个X。好,来test一个template刷新。哎哎,Index2.1中的数据,我要去index2.1中这个时候啊,我们就拿到了最中呢,我们这个,因为我们的index2.1里边写的这个是这个内容啊,所以呢,现在显示的就是INDEX2里边这个内容啊里边的内容好这是我们这块啊对这个呃呃,也也也也属于对这个前端的一个响应了啊,我们这块这个就是之前呢,我们是用这个,呃,他们这个我们的处理器函数里边这个W,就是这个response write,调它里边的write方法,我们可以给这个前端一个响应,给它写过去,写过去一个内容,诶什么串也好,页面也好,现在如果我有现成的页面,诶,我可以直接把这个页面想要模具,同时如果你后台有一些数据想要这个带过去,就可以通过这个我们的模板引擎,哎,把这个模板给你的这个数据把它给绑定在一起,最终呢,响应到这个浏览器啊,响应到浏览器好了啊,这是给大家说了一下诶,怎么来处理这个,诶通过这个模板引擎来处理我们这个呃数据诶以及怎么把。
33:37
把这个我们现有的这个模板这个文件啊,想要到这个呃前端这个呃浏览器或者是客户端。好了啊这个,那下面的时间呢,诶你把这个呢,你看一下啊,你看一下,然后呢,我们就来这个把我们这个之前的这个啊写的这个登录注册里边,之前只写了一个,是不是校验呢?那现在呢,我们这个知道怎么来获取用户名密码了,因为我们这个上午讲了处理请求,然后呢,现在也知道,诶通过这个time play的模板,比如呢,我可以这个。
34:09
哎,比如拿到拿到这个模板这个文件之后呢,我也可以往里边这个放数据了,所以下面我们就可以干什么呢,把这个呃前端请求发过来,到达这个服务器,服务器呢,在连输之后,把整个的给它串起来了,我们就可以来处理登录注册的这个请求了啊好先把先把这个来自己来看一下。
我来说两句