00:00
那现在能到这个登录页面了,那到了登录页面之后,诶,我们来这个点登录。哎,用户名不能为空,哎这些哎这些这个嗯,好使的是吧,哎好使的,那我这个。上午我们连数据库了,哎,现在我是不是就可以,而且呢,我们也讲了怎么来获取表单里边这些用户名和密码,对吧?哎,那接下来我们就可以来实现这个真正的连接这个数据库,来校验用户名和密码了,我们这个页面啊。我们把这个C,嗯,页面可能又是缓存的问题啊,我们找到这个登录页面,我们把这个的都改回来啊,Page,嗯,User login点开,我们这里边呢,就直接点点杠就不用要了,因为我这些是不是已经告诉他怎么来处理了,对吧,所以啊,这些呢,都不用要了啊,都不用要了,像这些study什么的,这些都可以都可以删掉了,因为处理静态资源呢,我们已经配置过了,哎,他能找到啊能找到,所以呢,这些吊带杠,我们这些相对路径的都不要了啊,都不要了,把这些都改了啊改完。
01:02
好,诶这个诶没问题啊,这是这个页面,哎,Log的这个页面我们改过了,哎登录成功,同样我们把这些呢,之前为了。让它没有问题啊,所以呢,我们把这些呃点点杠加上了,现在呢,我们把又去掉了是吧,又去掉了,因为我们已经设置过,在服务器里边已经设置过怎么来处理这些静态资源CSS样式了,注册。好,把这些都干掉啊。电热缸都不要。哎,直接斜杠,我已经告诉他怎么来处理了,所以呢,这些都不用要了,哎,都不用要了,好,哎,来最后一个保存。好,这是注册,还有注册成功保存。祝他成功。保存好就是这个啊,这个上完之后呢,哎,我们来刷新一下。右键查看源代码。诶,我看点开JS诶没问题啊,可以打开,可以打开诶就证明这个请求没问题啊没问题,我可以打开它登录,诶也是没问题的啊也是没问题的,好诶请作用好下面就是这个,诶我们得诶连数据库了,那连数据库呢,我是不是得有这个DB了呀,我们再创建一个文件夹啊在这哎来右键就是把我们之前啊这个。
02:20
讲到呢,再写一遍了,新建一个文件夹,也叫一个U,诶工具类也如工具工具啊,里边新建一个文件,然DB点构好来package。嗯。嗯,里边import需要打包,需要导什么包啊。忘了写引号了是吧。Database circle,嗯,这是这个我们需要用circle包里面的一个方法。还需要导。是不是得导一个这个驱动啊,对吧,哎,Get HUB。
03:04
点一个。com斜杠。嗯,Go,好,哎,就是它啊,Go circle driver my circle,好,然后下面呢,哎,我们来定义两个,一个局部月亮。DB。点一个DB,第二个挨着。E,好,然后下面呢,我们来初始化。In it。好,DB。是大写啊DB,然后呢,122等于等于什么circle,点一个什么方法open吗?Open里边传一个my circle,第二个嗯,这个数据源是吧,Root分号。这是是分号吗?这啥号冒号啊,冒号root,然后at。
04:05
听CP。括号,Local host冒号,3306。好,然后后边是不是应该是数据库的名字了,Book store。0612。好啊,波062,我现在是不是还没有这个数据库啊,哎,还没有啊,还没有一会我们就来创建它啊好,下面呢,If不等于。然后下边呢,我们这一个panic吧。里边我们挨着点一个挨方法,好啊,就这样了啊,其实这没有没有应该没有错啊,应该没有错,好啊这个工具类YouTube诶写好了,写好之后呢,我们把这个数据库也创建一下啊。啊,来到这儿,我们来创建一个数据库。来创建数据库book。0612。
05:02
好,我们在这里边呢,我们创建一张表,因为我们要连数据库嘛,哎,这个要验证用户名密码,所以呢,我们创建一个user表吧。也快啊,Create user。啊,跟我们之前那个测试的一样,第一个呢ID。类型,Primary key。Cment自尊。第二个user nameme,我。100闹腾闹。嗯,另外UNO唯一。哎,不能重复,哎下一个password。也是闹,闹不能为攻。哎,这个email。哎,这个就可以为空了,好,哎,来执行一下。
06:01
这些对大家来说。都都没问题是吧,哎,小菜一碟了啊好,这是一个表啊,创建好了,哎,F5。好诶来U的表好没问题啊没问题,好,这是这个表,好那有了这个表之后呢,下面呢,我们需要来创建一个,呃,一个结构体邮件,我们这个。讲操作数据库的时候啊,我们是写了一个这个,呃,结构体user,然后呢,是不是在下边给他写的方法呀,对吧?哎,写的方法,那我们也可以干什么呢?写函数啊,不写方法,通过函数的形式这个来来来创建对输库的一个增长改达的这些函数也是可以的啊所以呢,我们就在这呢,我就以这个,哎,我们通过写函数了啊,不写什么U的一个方法了,那在这呢,我们再来创建一个文件夹,哎,比如说叫一个。操作速度的比较比较丢吧。然后再创建一个model。
07:01
好,哎,来在这呢,我们来创建一个文件叫user。点够好,在这里边呢,我们这个。Import。了package。嗯,Package一个model,好tap。有的。好,里边ID整一个。下边是一个username。String password。Email。好。保存,然后这块呢,这个写个注释user。
08:00
好,然后啊,有了它之后呢,下面我们来这个,呃,写一个这个,呃,对数据库,因为我们现在呢,要实现这个登录注册的功能,要实现登录注册的功能,那你想一下我需要写几个方法。就写几个函数。首先,登录是不是得验证用户名和密码?查询对吧,那还有一个吗?添加对吧,那注册呢。注册你不得校验用户名,到底可不可以使用吗?是不是还得查呀?还需不需要啊?需要吗?你注册之前,你不是得先看看这个用户名能不能用啊,诶对吧,所以这块啊,嗯,这块呢,我们需要写三个方法或者三个函数,一个是验证这个,呃,验证你的这个用户名和密码是否正确,就是登录的处理登录的一个函数,嗯,第二个呢,我需要这个看一下你的用户名到底存不存在在数据库里边,诶这是一个注册的诶一个方法,然后最后你如果能能注册的话,我得让你把这个信息呢保存到这个数据库里边,所以呢,我要保存用户的一个方法,所以啊我们写三个方法,但你这个诶这块啊,你这个如果有比如其他的这个方式,只要能注册成功啊,你可以啊,你比如有同学我写两个啊写两个,那这个你教用户名那个。
09:30
比我通过这个什么登录的这个啊,我也可我也可以搞定,那也行,只要你这个呃,这个逻辑啊,逻辑是正确的,没有问题啊好写了一个他,哎,我们来拍个。然后呢,我们来写这个啊,来写这个function了,第一个呢叫get。Check,我就写这个,这样吧,Check check username。And password好长啊是吧,验证用户名和密码,然后呢,返回值,返回值我们返回一个什么呢。
10:10
是不是得该返回这个U了呀。诶,对吧,诶该返回user了啊,我先把这个注释呢也写一下,诶什么呢,这是check user name and password,验证用户名和密码。呃,根据这个用户名和密码。我密码从数据库中查询记录。啊,选一条记录好,这里边传参数呢,传啥呢。传用户名和密码对吧,传用户名密码,那我直接哎。哎,String。Username。String,然后password string返回值呢?
11:11
返回一个user吧。诶,对吧,是不是返回U啊。是不是有点。诶,Model点了一个。U的这个时候不在同一个包了啊,然后呢,再一个挨着。错错误好就这个啊。好,哎,这是一个方法,好下面呢,哎,我们这里边啊,就是来写这个四口了啊。没有定义,他怎么没有给我倒呢?啊,Model。好了啊来下面呢,就是我们之前写的了啊,首先呢,写circlel语句,嗯,写circle语句,Circle s tr等于select。ID。
12:00
Username password。Email。I name password email from。User where user name等于问号and。它是word等于问号,哎等于问号,好,哎就是这个,然后有它之后呢,下边来执行。直行,哎这块呢,哎用的是这个。返回直线数就等于是不是u to4。点一个DB对吧,User的点一个DB,然后点一个。Query,肉啊,还是宽啊?快肉吧,根据用户名密码应该是查询的,只有一条吧,对吧?啊快肉诶快肉诶里边呢,我们来传一下这个circle tr,诶好诶第二个呢,就是我的username,诶第三个就是我的password,诶password好,这是这个啊得到兜,得到兜之后呢下边。
13:12
我该扫描了是吧,扫描了,那扫描呢这块,哎,我这个。U是不是得先创建一个U啊?因为这个上午啊,这个有学生跟我们说了,我们不用创建那几个变量了,对吧,也不创联U悠的,直接把它赋给值,赋一下值就行了,对吧。U的等于。Model。点一个衣服袋。好,然后下面呢,我们这个呃,腹直了啊,用这个肉点一个。第一个应该是啥。User点一个ID对吧,第二个是。右上角一个。
14:01
Username,第三个是user,点一个。Password。第四个是优点一个。Email email好好,那最后这个干完之后,里边都有值了,最后呢,再把它。我这没有大括号吗?啊有啊下面呢。最后呢,Return一下。一下这块一个user,然后呢。个now,好,这是这个啊,Check user name and password好,这是这个验证用户名和密码,好下面呢,同样我们还有还有一个什么呢?验证用户名的,我看你的用户名到底可不可以用啊,哎,所以啊,我们需要有一个这个哎,验证用户名的啊验证用户名的来我们复制一个它了,直接改一下了啊。这个什么呢?Check you name没有and password了,直接check you。Check you name,好,传一个you name。
15:01
哎,返回一个,返回一个model,或者返回一个不玩类型的行不行啊。S口句不是不一样吗?那那第一个是根据用户名密码查的呀。第二个是我第二个就根据用户名查呀。拿拿什么输入的,对,就是拿就是用户名就查出来的密码跟。那个用就是跟他输入的密码。他输的那个密码换。
16:00
用了一个。先把用户出来。然后再在里面。咱们现在不是要写两个。写一个是吧,写一个先把用户查出来,然后再比密码。对吧。嗯嗯嗯嗯,对,可以可以啊,那我这个我现在呢,就是想这个不是多写写这个,多练练我们这个东西了嘛,是吧,这个就是为了让你多写几个方法啊,就多写几个不存在就就。不存在吗?预理存在,这不存在,处理不存,不存,所以他样。哪个按的一样的呀。他刚才说那地方他应该是考虑一个是否注入的问题,所以因为预处理的话,他没有那个是否注入的问题嘛,所以。是。可以可以。不是,他刚刚说的是这两个方法可以用一个,然后先先查,先把用户查出来,然后再比密码,所以呢,这两个先把这个用户查出来,然后再再比较密码,对不对啊,所可以用一个方法也可以啊,可以这一块啊,我们这个实现这个功能,你可以有你自己的想法,比如说你自己写一个也也可以啊,没问题,没问题,我们这块就是为了比如这个我们说了讲了什么快用不上,所以快肉啊用啥,就算你学者的话,你这样就用不上索引,因为可能是索引,但他说不可能索。
17:32
所以的话就属于女装。现场出货。我我先把这个写完啊,先把这个写完啊,这个select will u name等于什么,我不就是现在校验用户名,根据用户名看能不能查出来嘛,对吧,如果能查出来证明数据库里边有了我,对吧,有了那这个是不是就不能注册对吧,就不能注册啊,就是这个,呃,实现这样的一个逻辑的啊,很很简单的一个逻辑,主要是现在这个返回值。
18:06
那你这个返回一个。什么类型啊?我这块返回这个U,我这其实也可以返回U,对吧,我返回一个布尔行不行啊。哎,可以吧,哎也可以,所以呢,这块啊,这个方法嘛,返回值什么呢?可以自己处理,嗯,只是呢,后期比如我这个呃,获取用户名密码之后啊,就根据它来进行判断的,判断的一个情况,还有方法下边呃实现的时候处理的一个情况啊,假设我比如我这块返回一个布尔。然后来一个挨着,那最后最后呢,我该怎么处理啊。啊,后边该怎么处理啊,那我要根据他查出来了啊的这个有这个user了。
19:02
什么写呢?对,我这个不是啊,对啊,我这个写完之后呢,你可以这个按你的自己写对吧?诶因为这个我们每个人这么多人呢,肯定又有这么多个思路,对吧,每个人的想法不一样,对吧?诶所以呢,这个我们这个最后呢,只要你把这个功能实现了啊,因为这个每个些大家好多都有这个工作经验的,对吧,实现这个功能,因为我们这很简单的嘛,哎很简单的,你这个我我们这块什么都没有考虑啊,就是为了比如把这个功能实现了,哎,能实现这个登录了,能实现这个注册了,所以啊,没有这么麻烦,嗯。来或者这样啊,我们这样啊,这个还还返回一个,这个还返回给他吧,新一个嗯,Model点一个user userr好啊,再访问一个这个user,诶只是呢,第一个是根据用户名和密码查的,第二个我只根据这个用户名密用户名来查啊,用户名来查,如果要根据这个用户名能查到证明呢,你这个你这个用户名是不能用的,诶是不能用的,因为我们这个数据库里边这个用户名是不是已经唯一了。
20:10
我是已经设定过了吗?哎,唯一的啊,不可能,你这个插入的时候,不可能是能插入这个重复的啊,不可能插入重复的,现在我们这个呢,ID是主键,ID是主键这个用户名也也是这个不能重复的,因为我已经指定指定它这个唯一的了啊好,哎,这是第二个方法啊,还有第三个方法,我如果可以注册的话,我是不是得把用户保存到数据库里边。对吧,哎,所以呢,啊第三个,哎什么呢?Save save这个user啊是什么呢?诶向数据库中插入用插入这个用户信息。C。User,好,那这里边传什么,我可以其实也可以传一个user,对吧,我直接这个为了简单,比如我把这个user name string类型的,然后password。
21:06
String类型的,就是你可以传一个U的,就能返回一个U的也是可以的,就是这个传那个U的前面我需要再创建一个结构体而已啊,最后是一个email string类型的。哎,来,那这个返回呢,就是返回一个error了。同样来写口语句。Circle写str。等于insert into users。You name password。Email。Values。问号逗号问号逗号问号好啊,有了大海下面呢,哎,我们来执行。
22:01
用这个。点一个。DB点一个。It's good。里边传一个四口句。Str,然后第二个是一个username,第三个是一个password。Email。好。来啊,这里边儿呢,这个嗯,有一个error。好,下面呢,我们来写一下啊,If。不等于没。每一下看,那我们上边这一块。这块。没有没没有这个。没有返回这个error是吧。
23:01
我们没有那个预编译的啊,没有那个预编译的,所以呢,没有这个L,只有直接有一个肉了好啊。那这块,诶这块怎么演。Save user,好,这就没问题了啊。好,最后每一个。好,这是三个方法啊,三个方法诶这个一个是验证用户名密码的,诶一个是这个验证用户名的,诶一个是这个,呃,保存这个用户的,好,那现在啊,我们这写完之后呢,我们来测试一下。新建一个文件,叫一个user,一个。Do的一个下划线test.go。好,这个。测试,测试的时候方法是不是test?
24:01
可以吧,User t。听test testing testing,点一个t testing.t好。点一个D点。点一个T,哎,点了一个T,好,那在这里边啊,我们这一个呢,Test u的,我这里边呢,直接这个就写一下这个testing testing它怎么不帮我自动导啊好了啊。我们来打印一句话啊,来一个来。我们呢,开始测试。测试这个user。中的这个函数。好,我们下边呢来写三个子测试方法。Test这个是不是就大小写无所谓了,对吧,Test一个什么呢?嗯。
25:02
嗯。开始log in来登录啊,D星test点一个T。好,哎,这里边呢,是测试这个,呃,登录的好,诶再来这几个。好,哎。然后呢?好。保存哎,我写完它,它是不是不会自动执行,我需要干什么呀。T点儿。Re,对吧,哎,贴点re,哎,里边呢,我们需要什么呢,测试,哎这个。验证用户名或密码。好,然后呢,调度方法是test一个。Logging。好,来啊,复制。下面呢,测验证这个用户名。瑶。
26:02
好,他是一个。没。好,下面是保存用户。保存用户啊,Test一个save。多了一个W是吧,嗯,逗号上面的逗号逗号。逗号。等会。保存好来,哎在这里边呢,我们就来写了啊,这个test login,哎,我用的是这个。第一个方法是。Check user name and password,好,哎,我们直接在这里边来。下一个。
27:02
Do the name and password好,里边来传一下保me,那我现在是不是得先测一下保存呢?我这个里边还没有内容呢啊,我一会儿自己手动插入一个吧,先手动插入一个,嗯,我我这现在也执行三个都一块测了啊,三个都一块测了,那我们自己先手动,一会儿先插入一个,来一个in。好,密码呢,我们来一个123456。123456。好123456,哎,最终呢,返回一个这个呃,User还有一个呃错误,我们来一个user,这个错误呢就不要了。等于一个它等于它好,最后呢,我们来打印一下啊。Fmt点一个。Front left。来获取的这个用户信息是。逗号。有的。
28:00
好就是这个,那同样,哎下面呢,哎一样。C。改一下,删掉,这个是check username。保存。好哎,就这个获取的用户信息是那这块呢,我们整一个的MI2,先先整个耳的MI1吧的密码,一会再再改好下面呢,诶我们来保存。这个CU的,哎,里边来传第一个的ME2。好密码。整一个123456好,最后的一个邮箱,Me艾特艾特硅谷点com。好保存。好了啊,就是这个下面我们来执行一下啊,看看我们这个一口气写了这么多东西啊,有没有问题。慢慢来把这个。CTRLC一下啊,CTRLC下。
29:01
把这个关掉吧,再来一次啊。嗯,来右键我们在这个Du这块啊,来右键在命令在终端中打开,我们来go test。好,我们写的有没有问题啊。获取用户的信息,哎呀,没有得到。啊对,我对数据库里边刚刚说自己手动添加一个是吧密。嗯,123456。Email的。At s com。保存。诶,怎么是二啊。啊,已经已经插入过一个了,对吧,那个呃,保存的保存的已经保存进去了啊,我们下面来继续再来一次啊,那这个呢,我得改成奥三了。好,诶,再来测。Go,一个test。
30:04
诶,怎么还是没有得到啊。零。来看一下啊。刷新。诶能插入,但是怎么获取不到呢。User,我们来看一下我们写的方法啊。Check username。Select ID。Password email from user where。And and and and and。And。
31:04
And保存。And,没了吧,其他地方有写错的吗?应该没有是吧,感觉应该没有啊,来,再来一次。那这个添加我们就。我们就不测了啊,找到我们这个测试添加呢,不测试了。啊,添加不测试呢,把这个注掉。哎,保存用户不测试了,我们只测试前两个啊,前两个好,再来一次,给我一个test。嗯,看能不能查出来了啊。诶好,诶没问题啊。这一个哎根据din,哎能查出来ID是2DIN123456DIN好哎,那这个根据下一个din也查出来了,那证明。是不是这个用户就不能注册了,对吧?哎,就不能注册了啊,根据用户名能查出来这个用户的信息,那将来我们判断一下就行了,如果呢,有这个用户呢,你就不让你注册,没有的话就按照这个注册就让他注册啊,这是这块啊,这是这个,呃,我们这个根据这个登录注册,我们来写的这个三个函数,比如说三个函数来这个验证这个用户名和密码的,验证用户名的,以及保存这个用户的。
32:13
好啊,下课休息一下,下节课呢,我们再来写这个处理一个请求啊,或许我没密码,然后再把这个给完成了。
我来说两句