00:03
那下面呢,哎,我们就来说一下这个,呃,Go web啊,首先我们从这个服务器开始,为什么要从服务器开始呢?因为我们这个前端登录注册呢,用户名呃密码什么的,提交的时候肯定要提交到服务器,提交到服务器我们这个刚刚写的时候呢,把附用表单里边那个指定了一个呃页面,那其实呢,那个地址X后边地址应该指定服务器里边某一个地址,有服务器根据那个地址来处理请求,那么在这个web这块的啊,Go web这块呢,大服务器非常的简单,不像其他的,你像这个之前做过其他的比方像这个呃购这个账号呀,或者其他的啊嗯,这个服务器的话,有免费的什么toca呀等等,我们就要体压一个toca,然后呢,把它部署到这个你这个IDE里边,然后呢,再把这个项目部署到toca上面进行运行,那在这个。Go这块呢,呃,购外包,他们它包里边能给你提供了,就它这个里边有这个服务器,我们只需要配一下就行了,而且非常的简单啊,就用我们那个net htv那个包就可以了,就。
01:02
啊,我们先来看一下,首先这个简介,Web的一个应用的一个简介啊,这个呢,我们就不用多说了,这个大家呢,哎,好多都有这个开发经验,你也知道这个web是什么,我们就简单的搂一眼啊,Web应用什么在我们生活中无处不在,我们日常使用的个应用程序啊,他们要要么是web应用,要么就是移动的APP,诶现在那个移动APP非常多,而且之前有一段时间非常的火,这个推广这个那都是很早以前了啊,推广这个呃,扫码送这送那是吧,诶都是关注那你下方的APP,或者关注什么什么这个有一段都都是在推这个APP呢,那APP其实你打开之后呢,它也是你打开这个,呃。就会那里边也有登录注册,那其实呢,也需要这个呃,发送到您的服务器来进行一个处理啊,那无论哪一种语言呢,只要他能够开发出人类交互的软件,它那就必然会支持这个web应用那个开发,那对于一门崭新的编程语言来说呢,首先做的一件事情就构建于这个互联网和万维网,维网就是我们那个经常输入那个3W啊,三交互的一个库和框架。
02:05
而这个那些更为成熟的,还会有五花八门的这个外部开发工具。因为这个每种语言其实呢。哎呀,可以说这个好多公寓啊,它都支持好多种开发语言,无非有的你需要往里面装插件,像我们现在用的这个v Vs Vs code的,哎,我我自我感觉啊,感觉这个用着不是很舒服,你像这个,哎,对你像啊装插件,对对得装插件,而且这个你让你这个购物开发的时候,你发现了好多插件,你让它自动装,它还装不上,对吧?它下载的话,从那get up上面什么要装下载还这个下不了,还得手动的装,你看它需要什么,从那个getth up上面下载下来,然后放到你那个工作空间里面那个呃库呃,把那个内给它放进去来放进去一点点的就可以了啊,就可以实现了。下边又说了个够了啊,里面刚开始什么斩如土角的语言,为了让人们能够简单而高效的编写后端,嗯,这个系统而创建的,诶,这门语言呢,用众多的先进特性,这些特性呢,你们讲够基础的位应该也这个说过了,什么编程式,这个函数,函数式编程方面的一个特性,还有内置的对并发这个编程的一个支持,包括什么包管理系统垃圾,垃圾收集特性,以及这个什么包罗万象强大这个标准库,哎,包括这个,呃,服务器里边它也有这个对应的库啊,对应的库就不需要再用什么第三方那些了,你像这个,这你像Java来说,他也用什么第三方的这个搜类的库,他们开的呀,或者其他的一个这样的容器,那样的容器等等的啊,而且呢,如果呃,这个需要我们还可以引入,也就说它包含了好多库,那如果这些库呢,不能满足你的要求,你比如呢,我们这个一会儿,呃,后边啊,我们要连数据库的时候,连MYSQL数据库的时候,那这时候我们就需要引入第三方那个开源的库了,也就那个数据库的驱动。
03:52
这个跟其他的一样的,我们就要倒一个,那么第三方的炸包,那之前那个我们这块就也是第三方那个开源库,当然这个库呢,到时候也会给大家啊,如果大家有呢,就不需要这个,如果没有的话,也是从get上面下下来了,下来了这个第三方的一个连S一个库,到时候发给大家啊。
04:10
使用购元开发,哎,变的什么呢?日益流行,哎,很多公司都在使用,然这些都是知名的啊,大家都非常熟悉这些公司,什么谷歌呀,什么Facebook啊,腾讯啊,百度呀,阿里,还有京东,刚刚还有学生上网查到了这个京东的老大是吧,然后呢,被在美国出事了,对吧。啊,具体的原因呢,还不清楚,不用管它了,对吧?啊下面呢,我们来看一下这个web应用的一个工能原理啊,这是针对于我们,哎,其实这个外国应用的工作原理大体上基本上都是一样的,呃,简单来说就是你前端发个请求,发请求到我这个服务器,我看我服务器看你想要什么,就你这个请求是是什么,比如你要是登录的话,你这个请求发过来之后呢,我获取一下你的用户名密码,那当然了,这个用户名密码你能登录成功的前提是不是你之前已经注册过了,对吧,也注册过了,然后登录这一块呢?诶,你的注册的用户名和密码肯定得在我数据库里边,所以呢,你这个请求发到我这个服务器,服务器呢,诶需要获取你的用户名密码,获取完之后呢,我肯定得这个最终的要连数据库,呃,通过某种技术,我这个连你的数据库,你用的MYSQL也好,用的aclel也好,我这个连网数据库呢,查里边对应的表,查出来之后呢,根据这个用户名密码对比一下,如果正确呢,比如就像你登录成功,也就说你干你干的事情,如果这个失败,给你一个消息,说什么用户名不正确啊,或者密码。
05:30
等等类似的一个信息,那么在我们web这块,那他这块这个工作原理,外部那个简单的一个工作流程,我们来看一下啊,当然了也会涉及到数据库等等来看客户端,那我们现在呢,这个呃,BS嘛,诶这个浏览器。诶,浏览器这个就相当于我们这个客户端了,当这个请求发过来之后呢,它在服务器里边有个呃,多路这个复用器,诶有个多路复用器。哎呀,这个桌子表这么小。其他门就这么大,这个有个多隆复用器啊,多隆复控器呢,这个根据你的一个请求的一个地址,因为我这里边,呃,这这些都属于服务器里边的啊,那里边这个封框,嗯,它有一个多路分器啊,根据它你可以认为它是一个调度员,哎,他看拥有好多处理器,将来呢,我们自己会创建好多处理器,这个处理器来处理那个请求,那个处理来处理那个请求,所以呢,请求先到达它,其实这跟我们这个呃,Smart m Mac也就是么的一个框架啊,Smart MC里面应该有点类似small MC里面有前端控制器这块,它有一个多路用器,当请求来的时候呢,诶先到了一个多路复用器,它来判断一下你这个请求到底交给谁来处理,比如交给哪个处理,哪个处理器来处理,里边有好多处理器嘛,那他找到这个处理之后呢,他会看一下你这个请求到底想干什么,比如还是以这个登录为例,然后登录的话,他需要获取你的用户名密码获取,因为我们刚刚不是说了一个MVC嘛,对吧,有模型,还有这个视图等等,还有视图等等,那连从数据库里边,比如我插对的用。
06:59
抽词表,诶拿到这个,哎,我当然了要自己写方法啊,来验证你的用户名密码,比如呢,根据你的用户名密码,假设我从数据里边查到了一个,查到了一个U的,诶得到这个模型了,那得到模型之后呢,呃,下边我得把这个U的比如进行返回,或者说你这个。
07:15
呃,或者如果要登录失败,那我要这把把这个消息呢,最终还得在页面上显示,那显示怎么办呢?这块有个模板引擎,呃模板引擎啊,这个下面呢,是一个模板,就里边有好多好多模板,比如我们的HT页面,那这个登录的时候,假设你的用户名和密码不正确了,那不正确了,这个消息呢,我需要在HT页面里边显示一下,那显示怎么办呢?诶有这个处理器,通过这个模板引擎,诶来这个找到这个对应的模板,那这个我有一个,呃,我登录页面,呃,点一下登录,呃,用户名密码错了,用户名密码错了之后呢,我这个处理器还通过这个模板引擎,哎,再返回到你这个登录页面,把这个消息顺便给你带过去,就这个用户名或密码不正确,把这个消息,嗯,就是通过这个模板啊,在模板上就能显示了啊,就能显示了,就是说了一下这个外部用那个简单的一个工作流程啊工作流程哎,也是从前端到后台诶再到我们这个数据库一个简单的一个流程,呃中间呢,会涉及到这些呃这个呃呃环节啊,或者说各个这个组件,呃,请求先到达多路复用器,多路服器来看。
08:16
看一下你这个请求到底让谁来处理,诶让哪个处理器来处理,那处理器呢,最终呢,呃,通过数据库来得到这个模型,哎,得到模型,得到模型之后呢,我通过这个模板引擎,然后然后这个把那些数据呢,通过这个模板引擎啊,哎,这个再调用那个模板,哎。最终呢,哎,把这个数据在模板上给你显示出来,呃,整个的一个简单的一个流程啊,简单一个流程啊,啊再往下来看一下,我们要写一个这个,哎,Hello word有hello word这块我们要写什么呢?有写简单的一个。从前端哎到后台处理大家请求的这样的一个流程,哎,这个是不涉及到数据库的啊,不涉及到数据库简单的一个hello word怎么能把请求发过去,哎,我们在一个前端会得到一个什么样的一个响应,好来看一下我们这个hello word这个步骤啊,下面呢,我们就让我们来使用这个购物员来创建一个简单的一个外部应用,哎,非常简单的一个hello word,因为学什么不都是hello word嘛,哎呀,这个永远的hello word对吧?
09:11
我们在固pass下,就在我们的这个呃呃,Src目录下啊,工作空间那个SR目录下创建一个呃,Web APP这个文件夹,当然呢,叫其他的也可以啊,叫什么web等等,这个无所谓,在该目录下呢,创建一个main,点购一个文件,文件下边代码就是这个文件里边一个代码,当然包名啊,导向fmt,还有一个net htt这个八五。嗯,这个包你们之前没用过吧。用吗?用过是吧。没有是吧,忘了,嗯,这个net htp用这个啊,你就用它这个库里边的那些方法了,然后在这里边呢,既然你这个你这是一个服务器,你肯定得有处理请求的一个处理器,所以呢,我们在这块啊创建了一个处理器函数,来创建一个处理器函数function,这对大家来说都不陌生了啊,所以呢,我们这个web啊,就其实就是为了把大家在购物那块啊构基础里面学的东西呢,哎,比如学的什么哎结构体啊,什么变量啊等等函数啊,还有方法等等啊,相当于把它又练了一下啊,在一个项目里边的这个带领大家又练一下啊练一下,另外再涉及到一些购物web里边的一些知识,就是给大家说一下,然后这是一个main方法,像方法里边这一块呢,就用HTP里边的,呃,Handle fuck这个呃,就是function啊这个方法啊,这个方法这块呢,就是要映射的一个路径,映射的一个请求的一个地址了,我这块写了一个这个呃,斜杠就是一个访问这个根目录了啊访问根目录了,如果。
10:41
最后写杠写一个hello,那就是访问hello的时候呢,那它才会处理你这个请求,这说一定是这个地址,后边就是调用了一个处理器,你这个处理这个请求到底用哪个处理器呢?所以呢,把那个处理器传过来,就是上面这个我们自己写的这个啊把它handler,把它名字传过来就可以了,然后下边这块是这个路由的意思,用HTP调一个listen and server,诶路由你得这里边呢,需要传一个这个端口号,诶你比如监听那个端口号是多少,诶我要监听8080,或者什么8989等等其他的,那么你你你甚至可以写一个什么10086是吧,或者10010哎1000哎都可以,哎都可以,然后这块呢,我们暂时传递个传的是new啊,传递个他我们不传用它默认的这个多路服务器,诶用它默认的,但它后期呢,诶创建这个服务器呢,有好多种方式啊,我们下面就会说这个服务器的一个创建方式了,我们现在暂时写一个这样的一个hello word啊好,那下面呢,我们就来写一下它。
11:34
来啊,我们在这呢,在创建一个文件夹,新建一个文件夹啊,叫一个web。或者web first web都可以啊,我们就叫一个first。来吧。啊,First web APP这都可以按起什么都可以。First web,一个月吧。看着不好是吧,来在这里边呢,我们来创建一个文件,新建一个文件,加一个慢点勾。
12:05
好,来打包。写报名,Package,好,里边的import。第一个包。我们要打印肯定要导MMT对吧,哎,然后第二个。找一个什么呀,Ne下头。HTTP,哎,对,没的一个HTP啊好,然后下面写一个方法。好一个方法在这里边呢,哎,我这个处理请求,也就是我来映射这个处理请求的一个路径呢,哎,并且这个处理这个请求调哪个方法我需要写,那在这个写它之前呢,我得写写一个什么呢?呃,创建一个处理器这个函数。对,我得写一个处理器,就是一个函数啊,Function,比如叫一个handler handle了,这个函数名无所谓啊,你写什么都行,但是这里边这一个参数不能乱写,注意啊,参数不能乱写W。
13:02
HTTP点一个response writer response writer第一个参数是它,然后第二个呢,哎,这个前面这个名字W可以任意写啊,后边这个类型不能乱写啊,不能乱写,然后这块呢,是一个指针,HTTP点一个。Request。Request,好,哎,就是这个啊,你要是一个处理器,这个参数类型必须得是它,哎,必须得是它啊,也不能写其他的,好,那在这里边我们干一件什么事呢?我们用这个fmt点一个什么呢?F print,诶,Print line或者print f都可以啊,Print line,好,这里边我们把这个W呢给它传进去,诶,这个write啊,Write传进去,然后后边呢,我们就可以自己来写了,比如什么hello。What?当然了,你还可以在后边呢,你来获取一下这个,嗯,你的请除的这个路径,嗯,U啊。L点一个pass。哎,请求这个地址你你也可以写上啊,你可以加上,你可以加上,当然了,后边这个你不写也行啊,不写也行,这是我们这个处理器函数啊,处理器函数就是用来处理你的请求的,将来你处理哪个请求来调用它,来调用它,好那现在我们在may方法里边来写什么呢?
14:12
我们就来,诶来这个映射了,就是我来这个映射,就是处理这个请求了嘛,来映射这个地址了啊,我们就直接写了啊HTTP。点一个什么呢,叫一个。啊,Handle这个fuck啊这个方法,哎,这个方法括号这里边呢,呃,需要传一下那个Python string,就是你要映射的那个地址,诶你处理哪个请求的时候呢,调用这个上面这个处理这函数,所以这块比如我们这个直接写个星这写个斜杠,写个斜杠,那也就说我这个访问这个根目录的时候呢,哎,就可以来。这个调这个函数来处理了,那第二个呢,就是来查一下这个处理器了,处理器。第二个啊,Handler handle了一个function处理器函数,我们上边已经创建好了,所以呢,这块直接写一个。Handler哎,Handler直接弹起来弹进来,好,那这是这个,那另外哎,再往下我们就得路由了,路由就是你需要传一下这个监听的端口号。
15:10
房间路由。嗯。好来,同样是HTTP包下的这个库里边的啊,这有个什么呢,叫listen and so。下边这个啊,下边这个listen serve是这个正常的,呃,支持我们这个HTTP1.1的那个版本,下边这个呢,是这个,呃,安全的那个啊,用HTp2.0,因于这个HTP协议呢,后边我们也会说啊,HTP协议呢,之前是1.0,现在用的最多的是1.1 1.1这个版本,哎,还有一个叫HTp2.0,诶它那个叫HTPS,你平时现在上网的时候应该。比如现在在访问百度,前面那个是不是就变成HTTPS了呀,对吧,你包括这个网上银行等等啊,就只要跟那个安全密切相关的,现在都用的这个hps啊eds好,那我们现在用它,哎htp and so,前面呢,就是传的叫监听的端口号,哎监听端口号我们来写一个这个8080。
16:05
当然你写其他的也行啊,后边呢,我们就用它,呃默认的这个呃多路分布器就可以了,哎所以呢,哎就这样写,哎就这样写就行了啊诶这是我们这个hello word里边面点go这个呃文件里边的这个代码我们写完了,下面怎么来把一个请求能发的这个服务器呢,以及怎么样来这个运行呢?诶我们来说一下,你在这个呃外BAPP这个文件夹上啊,在这右键诶你们之前应该都用过是吧,或者说你直接打开你的工作空间,点到那个位置也可以,直接用CMD也是可以的啊不过我们的工具呢,有这种快捷的方式是吧?你在右键呢,有一个什么呢?在终端打开对吧?啊在终端打开,哎打开之后呢,你在这这个你不得编一下它吗?你用这个go build哎,插点go哎可以或者是你这个go in store安装这个,如果你要go build这个慢点go呢,它会生成一个慢点exe文件,如果你个呃go in store呢,嗯,Web APP呢,它会成一个web app.exe所以。
17:05
两种都行啊,两种都行,因为我们现在这里边就一个文件,所以呢,我就直接勾build它了啊,直接勾build它了,来勾build。慢点够好,然后呢,会生成一个ex文件,下面呢,我们就来运行一下它,呃,点斜杠在当前目录里边,哎,运行这个慢点exe,注意啊,我这个不写那个点斜杠行不行啊。这样写这样运行行不行啊。可以可不可以啊,可以是吧,来保存了。保存了啊这块呢,哎,他是无法将它什么呢识别,为什么呢?哎呀,什么什么这一堆啊这一堆,然后呢,他最后呢,有一个有个建议。在哪呢?改为改为哪儿了?倒数第一。第二行啊在这啊,哎改为建入点斜杠,哎点斜杠,所以呢,你这个直接运行它,我们这个,哎认为它就在当前这个目录下呢,应该直接运行它,行啊哎但是哎不行啊不行会爆错,所以呢,我们来诶这个点斜杠慢点诶exe好哎来敲一下回车,诶这个时候呢,它不会再显示什么呢,E盘什么什么,哎这个时候哎只有一个,它就证明现在你的服务器已经启动了,允许访问,允许访问现在就是服务器启动的一个状态啊允访问好,那现在这个我们在地址栏输入这个local house的冒号8080,就能调用我们这个handle德ler,诶来处理这个请求了啊来处理请求了,好,现在呢,我们来试一下。
18:40
Local house的8080回车,诶,Hello word就出来了,而且呢,这个地址现在我是不是没有输入其他的一个地址对吗?直接就是一个斜杠,那好,那如果我要加了,因为后边啊,我这个handle到了这块呢,呃,打印了那个R,就是请求里边的URL里边的一个pass一个路径,请求的一个路径,那如果我要写成它。
19:02
斜杠。Hello。回车,诶这块呢,就变成斜感hello了,哎,这就是这个请求的地址,当然你后边写什么,那就是什么啊,什么word,哎这块就变成hello word了,哎,Hello word了就是这个啊,这是我们这个很简单的一个,很简单一个,所以呢,这块诶你发现了在我们这个购物这一块,Google这块啊创建这个服务器呢,诶非常的简单,不需要再用什么其他的了,你像其他的,你像这个以Java为例吧,比如我要写入这个动态一个外部工程,创建好外部工程中呢,我需要这个右键rise,把它放到这个timeca这个服务器里边,就是我手里的容器里边啊,放到那里边来跑,现在我们这个里边HTP这个net HP这个包里边呢,已经有这个包含这个服务器了,所以呢,我们就直接调这个啊,调这个less and serve进听这个端口号,用它这个多个服务器就可以来处理我们这用这个请求了啊直接这个运行它就能启动这个服务器了,哎,非常的简单啊,非常简单,就是我们这个啊简单的一个hello word,那好,那下面啊,诶给大家五分钟时间吧,您把这个呢来写一下,写完之后呢再给大家。
20:05
他说除了这种方式呢,我们还可以怎么来写,就是这个服务器的一个创建方式了。那么这个用的还是比较多的啊,后边呢,我们基本上都用这种啊,其他的那种串联方式呢,你就了解一下就可以了。
我来说两句