00:00
看一下我们刚才呢,已经完成了这个在购物车,呃,在这个详情页面点击加入购物车,那可以获取到这个商品的ID,以及他选购的这个数量量,那么接下来呢,把这两个数据哈,给他传到后台去啊,而且他因为现在的话,他得得是登录的状态才能加工上啊,传到后台怎么传呢?我们这辈子哈,呃,后台是不是得专门有一个方法来接收这个数据,然后把它写入到数据库。对吧,所以呢,我们先到我们的home的views啊,这个card views里面先去写一个方法啊,写一方法叫做加入购物车第一啊加入购物车啊,所以DF我们这定成A的A的嘛,A的request,然后下面呢,去接收这个数据啊,Date等于我们的request点我们写一个post请求可以吧,我们一直在写get对吧,看一下post的请求啊,然后呢,需要注意的事项项好这里打印一下这个date,然后呢,Return一个H。呃,也天一个杰森吧,啊杰森is好吧,嗯,包括哈。
01:05
嗯。我直接把接收的数据先返回得了了,行吧?啊,接收的数据直接返回啊,来看一下你助理啊这位的加入购物车接收数据,然后那个打印,并且把这个内容给返回哈,那么有这个方法以后我们是不是还得有这个对应的路由对吧?诶对应的路由,那么购物车的加入,这里是加入加入购物车购物车。购物车啊,那么这个位置写个AA啊,复制复制。Po好了好了,有了吧,啊有这个地址啊,那么有了地址以后,在我们data这个页面里边就可以发送数据了,到了点po对吧,发POS请求啊,然后第一个参数是当前的请求的U22,划括号百分号U22空格写刚才那个地址对吧,然后接下来第二参数是你当前传递的数据,把这列传过去是不是就可以了,第三个就是你当前的这个叫回调函数,第四个是返回到数据啊,来这个位置这一条。
02:05
然后呢,Log打印我们返回的数据,对吧,没问题哈。好,那么我们打开这边的啊,刷新一下,看看有没有什么问题呢,会不会有问题呢。来选择三个产品,好吧,加入购物车POST403403是啥来着?拒绝对吧,拒绝。你看你当年的请求,它响应的内容是一堆的H码代码,但是这个位置告诉你了csf验证失败,请求被中断。是不是这个东西啊,对我们说在我们当前的控框架里边啊,所有的这个叫po请求都要经过CSR的这个中间的验证啊,如果验证不过去,那他就报错。对吧,啊,验证不过去就报错了错,那么接下来怎么去处理这个问题呢?啊,我们到一下那个张总的官网就来看一下啊。嗯,但是我那个之前的课件里边也有写哈,对有两种解决方案,第一种呢,一种就是在你发送阿贾格斯之前,给你这个阿贾格斯里面去加上这个csf,呃,这个ton这个验证码啊,这个验证的数据听到了吧,这第一种,第二种呢,就是在你的对应的这个叫做方法当中取消他的验证。
03:21
明白了吧,就是写一个装置器取消他的那个talking的验证啊,这两种方案都可以,明白了吧?啊,我们都来看一下哈,来呃,找一下我们的加框架的文档。就是网有点慢,慢慢。来翻译一下啊。翻译一下,然后我们看一下啊,这个在哪个位置嘞,在。呃。好了好了,在哪来着。嗯。
04:00
跨赞请求,跨赞请求伪造保护,这个就是指的是csf啊看到吧是吧,CF啊对来翻译一下啊,发展请求伪造保护是怎么回事是吧?然后告诉你怎么去使用对吧?然后如果你想进入他的话呢,就是是这个意思啊,如果你想整个项目当中所有的POS的验证都都取消掉,那就怎么办呢?在我们的那个对设置里边找到那个叫csf这一行,把它注释掉就可以了。明白了吧,啊,然后呢,呃,他说如果不建议借用他,你可以使用这个叫csf这么一个方法,在要保护的特定视图上下去使用,知道吧,然后在你对应的表单里边,你可以加一个这样的元素看了吧啊。啊,表单里边可以加一样东西,然后呢,二点克怎么办呢?啊,所以说上面的方法呢,可以用于二点克po请求,但有一些不方便,对吧,你必须记住每次POS种请求都要将这个C这个令牌作为post的数据来进行传递,对吧?然后呢,他说有一个替代方法,就是在每一个叉2t request,这个叉2REQUEST呢,就是我们的2.4对象啊,在这个上面来设置一个叫叉杠CS啊标记信息通过它来进行设的的啊那么怎么去做呢?下边有一个案例啊,我们去直接找一下啊对,呃,一种呢,是在你页面里边获取放置那个叫那个叫什么来。
05:25
呃,放置这个内容,然后做还有别的方案啊,你看放置这个内容,然后是不是再获取它,对这是一种啊,然后还有一个就是用阿贾克斯setup,这个我们是不是讲过。是不是讲过这个内容内容啊,阿点克斯set up,然后来设置置他这个怎么这么麻烦。怎么这么麻烦?不需要这么长啊。安拉GS,我不需要几1.15或更高版本中保护CW令牌不被发送到其他地方。
06:02
哦,每次还得获取,然后在这里看一下啊。这么麻烦吗?我记得以前很简单,来复制一下放到放到哪里,放到这个页面中这个位置吧。看到了吗?这是在哪,他是不是分到了一个方法,看到吗?放到那个方法,然后写了一个,这还是一个正则是吧。是不是一个正则,对,然后test的,你当前的这个ma的,然后下面呢,阿列克斯setup去做这个请求,然后加了一个标记。那这个明显有点多了,你知道吧,我感觉这个东西好像有点多了。关键他这个内容从哪来的呢?他这个变量在哪。哦,还得再获取我的个乖。看到了吗?复制哎呀呀。贼拉麻烦这个。来,再把这个复制过来。
07:01
看懂了吗?就你先找个位置,把你那个什么放进去。放到这吧。看到吗?诶不能放到这里的,只能放到那个A代码里边,就是在这这个代码会生成什么。会生成一个input的type等于hidden,然后内部等于这个内容,对吧?那么这一步是不是就是用几块来获取这个元素呢?看吗?找到这个元素,然后获取它里边的值对吧?获取它的值,然后再做操作,这个这一步超麻烦。好麻烦对吧。看懂了吗?看到了吗?对,这是超麻烦麻烦来我们先看一下好不好使,好吧,甭管他麻不麻烦烦,嗯。点击过去了。过去都回来了,看到吗?数据都都打印出来了,是不是就可以了,对,但这个方法很麻烦,方法很麻烦,我们看一下能不能简化一下啊。字典里边不行。这两个可以吗?你添加了吗?嗯,就是这个位置吧,Date里边再增加一个。
08:04
写上这个这个内容。然后它等于上面这个变量量,对吧?诶放到这啊,来看一下行不行,CTRL加F好几种方式啊,它只是给你提供了一个参考的方案。还有别的方法吗?来点击。去了吗?也回来了对吧,也回来了啊对,然后但是这个方法是不是会打印出来这个内容对吧,刚才那个时候没有打印对吧?嗯,除了这样做,还有一个还有一个方法。他这个贼贼麻烦麻烦看一下我课件里边啊。在哪打开看一下关于咱们的csf,然后如果你是。嗯,阿贾克斯,看一下阿克斯。
09:03
臭麻烦就写这个来复制,你说C这里都不需要,这里不需要要。就写这个代码,代码看到了吗?到了点二点克赛大的,然后date里边放一个数据,完事了啊,把这个括号给干掉。看到了吗?对,增加一个数据,然后这个就不需要了,他这个是不是跟上面这个是一样的啊,跟上面这个是一样的,对来刷新。点击。过去了。过去了吧,看了吧,就是先去设置了一个date,然后又又重新把这个date放进去了,能了解这意思吧,啊这个也不需要了,你看很很显然这个方法是也很简单单对吧,设置一个这个内容OK吧,啊,这是一种方案啊,然后还有一种方案就是取消保护,取消保护怎么办呢?在我们上面这个方法里边有一个来,首先呢,你去在加控框架里边导入这么一个模块装置器,装置器,然后从用这个你需要这个叫装饰的方法里边去加上它就可以了。明白我的意思吗?是吗?啊,来复制一下看一下好不加来。
10:05
然后复制放到这个方法的上面,这是不是装置器的语法对吧?往这里放啊,然后我们这个方案里边呢,也不写这个二点克太大,都不写看了吗?啊都不写就是正常传数据就好了,来看一下好不好用啊,来刷新。点击加入过去了吗?能理解吗?啊,反正就是说三呃两种方式吧啊,一种是在二点之前去设置一个数据csf掏控是不是给他带上对吧,另外一种就是在这个位置取消掉,取消它的保护。懂我的意思吗?啊,这两种方案都可以啊,都可以好了,因为我前面一直在用那个get的行油啊,大家我带大家用一下POS,行啊会遇到这个问题,好了,那么这个问题解决了以后,那么剩下的就是在我们这个位置。我们现在是不是已经接收了提交的数据啊,哎,接收接收这个叫嗯,阿列克斯提交的提交的数据,那么接下来要做什么呢?接下来做什么?这个数据。
11:00
只有商品和那个叫什么,呃,商品ID和它的这个数量并没有用户,我们是不是还得需要用户啊。对吧,啊,这里来从这里再判断一次,当前用户是不是登录。懂我意思吧,就你前台是不是检测过了,后台再检测一遍遍,听懂了吧,啊一般情况下所有的检测都是前后台分开,都都要各自做检测,懂我意思吧,来确保你这个数据的完整性,呃和这个叫安全性啊好,那么接下来这里来判断当前当前用户用户。用户是否是否是否登录录啊,是否登录来if判断,这个叫request.se点这个叫什么呢?VIP user是吧,User。对不对啊,然后这里边是不是有个ID啊,啊,这样我们把这个这个数据放到这,我们定一个变量叫VIP好吧,啊,放到这里可以吧啊接受这个数据,然后放到这个变量里边,那么接下来从这里边判断if它的ID,它的ID如果为真是不是就没问题啊。
12:03
对不对,如果为呢假,那就是这位置来一个为假对吧。对吧,甲的。一个阶层,当前用户没有登录就可以了了。对吧,复制放到复制放到这。然后这里写一个划括号啊,嗯,这个叫code的冒号一,冒号一,然后呢,这个叫message消息,就是当前用户,当前用户没有没有登录可以。对不对,那如果登录了之后,下边干什么?哎,准备数据添加数据库,准备数据数据,把数据添加到添加到购物车。购车就可以了,能理解吧啊,那么我们看一下啊,Data里边有当前的商品ID,有它的数量,但是我们我们要的是商品ID吗?我们在对应的模型里边可不是要商品ID啊,你看一下啊,这位置我们用的是外界对不对,这两个值都必须是对象对不对,都必须是对象啊,所以这个位置怎么办呢?我们看一下啊,稍微做一个处理date。
13:10
中的这个叫做UID是不是用户啊,它应该等于我们的模型去查询对吧?models.users.ob OB gets.get括号获取ID等于C啊啊。VIP的点ID的对吧,这个对象查到来了吧,好,那么接下来那个叫bid,它应该等于我们的谁呀呀book点括号ID去查谁。查,查了个date号里边的。嗯,Date中括号里边的叫什么bad?对。对不对啊,那么接下来我们最后再打印这个数据,看一下它对还是不对,是这意思吧?啊,我们看一下模型里边啊,123这个数据是不是有啊,是不是选中默认,是不是有个默认值啊,因为你刚加入数据库,它肯定不是选中的啊,默认为零,就是没有选中,好了,那我们测试一下啊,看这个数据对不对,YP怎么了?哦,这里是吧,哦,这里少。
14:08
嗯。可以了吧,嗯,好了好了,来看一下一下一下。刷新一下啊,这个位置来选择两个,呃,选择三个产品吧,点击加入购物车500服务器内部错误啊呃,但凡出现这种500,你不用检测你这个位置了啊,就肯肯定是你这边看报错了,看了吧,他说没有VIP user。Story。哦,这个不是这么写的,写的是这么写的。对吧,或者你是这么写也行,点get这么写也行。对吧,这前后台是不一样的,懂我意思吧,在模板中和在拍on的代码当中是不一样的啊对这个地方有问题啊,来再点击加入。哦,这个刚才停了。停了,他说没有ID。
15:03
vip.idid。看一下VIP啊,VIP下边的程序先注释了,好吧,先注释掉啊,这个地方好像有问题啊,来加入购物车。哦。诶哦,他是个字典是吧,嗨,你还不能用点是吧,所以这里依然得是。中号的呀。对吧。那这个地方是不是也是中号ID,这个叫它的模板引擎里边语法和这里还不一样啊对,来刷新一下啊,这里选择三个产品来,第二加入购物车。没发出去啊。刷新一下。好,来点击。
16:01
购物车又五。他说问题。杰森。Of that book is notcent。哦,好,这个返回信息了。这个地方因为你那个那个谁你这个不开D还有UID这是不都都都是那个聊对象了,无法解向,所以这个位置啊,咱们得对扣的返回零对吧,然后message啊加入过是什么加入。加入购物车叫购物车成功对吧,应该返回这个信息啊,返回的信息不对。再来刷新123加入购物车,加入购车成功对吧,来看这边啊,这边数据对不对。嗯,怎么只有ID和那个谁呢?哦,有下边这个,下边这个对吧,Bid是输输的那个对象,然后还有用户ID是不是都有了啊好,那么接下来这个数据是不是就可以入库了,哎,添加到数据库,那么怎么办呢?
17:10
呃,把数据添加到购物车,那这个位置就是我们的o bz,等于我们的models.cart大小cart括号,然后星星date是不是给它给了以后OBj.C是不是保存一下。对吧。如果他没有问题,就这样,如果有问题EXP啊,加入购物车失败对吧。加入。购车失败对吗?好了好了,这个位置是不是就写完了这个部分啊,这个就是很简单,就是加入就可以了啊,加入可以了,嗯,好了,我们测试一下,测试一下我们数据库里边现在是没有数据的啊,来看一下购物车里边。是不是没有数据啊啊,没有数据哈,来我们测试一下刷新,在选择三个产品加入购物车。
18:07
感觉有点慢。怎么没反馈数据啊?这里没响应,弄半天我的个乖乖。哎,真是愁死了。加油,购车成功了吧,啊,因为刚才我们的服务器没重启啊,服务没重启来没问题吧,啊,Select是零,然后bid select为什么在前面呢。对吧,这个顺序怎么回事事。好神奇啊啊,他不应该在后面吗?那也不应该啊,那白点应该放在前头,因为在这里它就是个数据嘛,是这样的吗。啊,这个里边没有外件,我们那个还有谁谁不可以没所有外键都在后面。哦,我还真没注意这一点。嗯,好吧,现在数据是不是已经加加进去了,加进去了啊,那么现在还不够哈,我们再加入两个,就是这个用户,他除了加入这个产品以外,还可以加入别的哈,那我们这位的选择一号产品好吧。
19:04
要上品,然后再选择加入一个成功对吧,然后呢,这个四号产品,看有没有再加入购物车,选择两个加入购物车可以了吧,然后看一下数据库刷新。没问题吧,啊,都是默认没有选中的状态啊,然后包括这个内容OK吧,嗯,OK。哎,其实你知道吗,咱们加了一个小动状态。后面就变得麻烦,你每次勾选的时候都要发这个。都要改数据状况,每次勾选都要改,就变得就我觉得挺麻烦的,好了,那购物车数据加入成功了以后,下一步是什么呢。在购物车的列表页来展示一下当前用户的购物车数据。对不对啊,展示一下这个数据啊,好了,这样我们把这个内容先暂停一下。
我来说两句