00:00
呃,昨天咱们把这个项目的这个后台啊搭建了一下,然后写了一下这个关于会员的相关模型,那表单也都已经处理完了啊,大家那这样哈,咱们那个看一下咱们这个项目哈,来打开627。是8000是吧,嗯。来访问到我们的后台哈。啊,放到后台后台之后进入到这个会员管理啊这个页面,然后呢,点击新增啊,就跳到了咱们这个相关的表单操作这个页面啊,然后谁说了这个页面有bug是吧。店长说的是吧,是吧。看一下啊,就这个味道哈,是这个吗?不是第一个,不是第一个是图片没有找到啊,图片那个没有找到,我们不管它啊对,然后这个b.GS第四行报了一个错误啊,报了一个打印的一个index,然后下边就报了一个错误,他说没有找到对应的什么节点哈,没有找到最近最对应的节点,这个是怎么事呢?就是你看你在那个首页的时候,他不会出现对错误。
01:05
首页那个链接地址不对哈,回头我们改一下,你看在这个页面并不会出现错误对吧,那么找到对应的其他页面就会出现错误是因为。我们这个页面并没有做那个叫什么。图表啊,没有做图表,他这个GS里边啊,有一个图表的相关操作,我们去找他把它注释掉就可以了,或者说嗯,或者说他这个图表呢,应该是在他那个页面才有用,对我们其他页面没有作用,对吧?啊,所以你也可以去找,找到那个什么样他的模板文件啊,然后给他做个调整啊,看一下找到my me啊,咱们的base啊base,然后先去搜那个。首页。所有的这个地址先给他换掉,要不然不对。哎,不对不对。这个地址里换成括号,百分号,URL空格my me。
02:02
斜杠ind对吧,先换成这个啊,先换过来好,然后呢,在哪个位置有它的GS文件哈。应该是这个位置置啊ap.gs我们去看一下啊,找到对应的GS文件去找一下。这位啊,你看他说body,当判断是哪个页面,然后执行相对应的方法啊,Body type获取,然后。这里怎么还做了个循环啊,不对,这里是是吧,然后。啊,这是in的页面,那每个页面,也就是说它原来的话,每个页面这个这个内容肯定不一样是吧,它在这个包里边是不是设置了一个。样式啊,每个页面可能都不一样,对,你把这个东西换掉就行,你看在这里是是不是再做一个判断,对吧,每个页面东西都不一样哈,对,所以我们这里怎么办呢。嗯。
03:01
想想啊,这个位置如果是首首页。刷新一下它,如果是首页,让它变成index。然后如果是其他页面变成相对应的别的页面处理。别的页面处理我看一下啊,最好是把这个能过来对吧。把这东西拿来,怎么拿呢?我想想啊。请求的UR路径,请求的UR路径,首先呢,我们在这个位置肯定是可以得到一个东西啊,一个东西叫画括号。呃,划括号点pass叫request.pass我们看一下能不能得到啊刷新。看一下我们的页面。能不能得到?能吗?能得到是吧?诶,那个杠哪去了去了。杠没有,还是我这个位置写错了,我加个引号,看一下有没有那个杠。
04:06
上星。有是吧,有然后呢,如果是首页的时候,看一下这个值的,这个值是m me对吧?好,然后我们看一下在ab.S它他没有,我感觉他没有做判断。Tab对应的key,然后调用方法。调用对应的方法。下把,如果是音脚本信息怎么,然后下面。哦,下面有图表,看到吧,有图表。诶就这一个呀,他不是每个页面都做了判断断。它并不是每个页面都做了判断哈。对吧,它这里边你看看他这个里边是不是一共就两个,一共就两个完事,它这个位置做判断循环是吧?循环这个配置date,配置date不就循环这个东西吗?这是个对象嘛,然后拿到了K不就是它的这个叫属性名嘛,对吧,属性名,然后在这里做了一个判断,说如果K在这个跟它它相等,然后调用对应的。
05:15
被子里边的方法。和它相等。这个是index,我们看我们那个叫什么。嗯,我们那个叫给你下的密是吧。想那么多。在这里写个判断的划括号反号if判断re e.pass它的结果如果等,等于。咱们的那个叫根下的MY,那个叫MY斜杠,那这个位置就给它显示一个index啊,否则就是二。
06:01
不显示是不行了,按意思来看一下页面啊,刷新新。这是index对吧,然后其他页面。不显示不显示对吧,对吧。没有错误了吧,这个错误是图片的问题啊,没有了吧,来找到新增那边。看到了吗?啊。对,这个错误是图片的问题啊,图片并不是咱们想要的问题啊题啊无所谓,他这个b.GS还在打印是吧,打印就不需要了。这个位置把它注释掉可以了,你看加了一行代码,是不是搞定这个问题了。明白了,加了一个代码,然后你看首页他那个图表能不能正常用啊图表来来这个位置位置。哎,图表这个有问题啊,有问题。别有空格。再刷新。行了,嗯,可以了吧,对就完事了啊好,他这个处理的还不是特别好哈,对还不够这么这个东西,嗯,行了行了,那我们现在这个呃呃,这这这个页面的错误问题啊解决了好那么接下来找到这个新增的院,从从这里呢开始去添加一些内容容啊添加内容,然后比如说这两个都是必填对吧,那头像其实是选填对吧,然后呢,昵称啊,还有这些东西都是选填啊,那必填必填的我们在表单里边稍微改一下啊。
07:31
Usual aid。找到我们的地铁。这个位置冒号来个星是吧,一般星是不是必填。看一下一秒,小心小心。好。就加光加一个星泽了。嗯,这样可以吧,嗯。也不好看,嗯,行了,就这样吧,然后这位呢,开始填写相关的对应内容,然后接下来去提交对吧?啊,他把这个数据要提交到哪里去啊。
08:06
放表单是不是要写一个地址啊,X是不是要写一个地址,好,那对应的你是不是得有个方法来接收啊。那我们找到我们的USS里边啊,去做一个方法来复制一下。在下边来写一个叫音色的IP可以吧,然后这里面去接收表单数据接收。接收表单数据,那就是date,等于我们的request.post点什么呢,是吧?是撕掉就记不太清楚,来这套好,接下来这里呢,先来一个STB。啊,相应的内容内容。复制放到这里加引号好了,那我们看一下好不好使哈,来走到这个页面刷新一下啊。啊来开始写手机号10701383017啊,然后密码123456啊头像添加这些都不写好吧,点击提交。
09:04
昨天我在这个位置设置了一下它的那个属性啊,看一下啊啊这个铝块的这是必必填就必须写,然后main认识最小程度最麦克认识最大程度看到吗?然后这里有个main认识最小程度六啊八位位看到吗?我稍微给它改一下,改成六位吧,好吧,然后这里再多写两个就完事了啊,密码写成。写成我的名字123可以吧,啊,名字123,然后这些都不写了,点击提交。没反应反应反应。没反应,为什么什么哦哦。这里你这个方法然写了就会员啊执行啊叫执行会员添加对吧,这个这个呃,这个对应的方法虽然写了,然后没有没有给他提供由,然后对应的里边是不是也没写方法,对这里啊来音色的in。音色的方法来把这个复制CTRLC,然后找到我们的A的页面,找到表单的一项,在这个位置置对吧,X里面去写上它对应的提交地址就。
10:07
这位置完事了吧,嗯,来来退回去刷新啊刷新来重新写一个个。07013801383017啊,密码123啊,不对不对,我的名字1233,然后这些都不写了,点击提交过来了吧,然后看一下我们这边的数据处理理。我打印结果。诶,他怎么只接受了一个c sf token,看到吗?C sf mid VR token就是中间键中间的一个验证,其他没写,问题在哪呢?我们没写内幕吗?哦,Sorry,我没写内啊,好,来这里name等于form,这第一个手机号,第二个密码,Name等于passwordd PSD,然后这个第三个头像。嗯,Input这里也没写是吧,嗯,Name等于叫PC吧,好吧,好,然后这个昵称。
11:05
啊,都写上名字啊,Name等于尼name,然再往下居住地址啊,Name等于叫什么来对我们叫home。对吧,然后性别这个对了了,然后类别身份类别这里是不是也没写name等于什么。对吧,那就是昨天定义的属性就是太保好了,其他都没问题了吧,啊,然后我们再退回去刷新重新写啊。好,然后点击哦。123,我好像没写1233。卡了吗吗?看这边看这边边对吧,是不是都接收到了,其他内容都为空对不对啊,都是空的啊,都没写啊,然后包括他的那个叫什么头像是吧,所以这个数据拿过来以后啊,我们要做两步处理啊来我把这个先复复制一下啊。
12:08
复制过来,然后放到我们的对应的方法这个位置了哈,来首先这里面第一个我们是不是把它删掉。对吧,所以这里呢,是点泡泡。把它删掉,选择C。拿过去把它删掉,然后呢,后面的这些啊,剩下的是这些了啊,后面这些手机号密码密码我们是不是要进行加密啊,密码要加密处理加密。一秒加密,然后PC还有什么尼科内等等这些内容啊,这些都不用动了,然后主要还是检测一下他的头像对不对,对啊,检测头像。检测是否上传了头像对吧?如果他上传了头像,我们就进行头像的处理,如果没有。如果没有,那怎么呢?对,就给个默认值就得了,对不对啊,给个默认值对,所以这里呢,做一个判断,If说当前的贝塔中括号里边的pic,它的结果如果为真,那就是上传了,上传了头像对吧,头像那我们这里先pass啊对,如果没有二,那么date中号里边的pic。
13:19
我们数据库给你知道吗?知道吗。给了是吧,我就把它删了就得了,Data点泡泡弹掉,数据库里边是不是会默认,就是在用模型的时候是不是会默认给默认,嗯,就我这里把它弹掉就行,对吧。能理解吧,啊,如果如果他上传头像,到时候我们还得写上传方法对吧,对不对?好,剩下的下一步就是等你数据处理完以后,下边这个逻辑就是进行数据的添加,加数据的添加对吧?好那么接下来一个一个处理啊,首先来看第一个在密码加密,密码加密怎么处理呢?在底交框架里边给你提供了一种加密方案啊,加密方法我们来看一下啊。来打开我们的课件,先打开开,嗯,这里面有一个专门的呃密码管理这里啊,首先我们说一下哈,我们如果不用底账框架提供的这个密码方案,我们有一种方案叫做MD5的方式,明白了吧?啊,你可以从这个叫导入一个包,叫哈哈细包啊哈包啊立包,然后从这个包里边找到一个MD5的方法,知道吧,用它就可以进行MD5加密啊,除了MD5的加密之外,底账框架还给你提供来另外一种密码方案,它是专门做的,就是又对这个呃,哈希的这个方式做了一个分割啊,做了一个分割,它叫做哈希散利的方式啊,哈希两的方式啊,怎么去用呢?你在底账里边去导入对应的包,一个叫make password,一个叫take password。
14:41
吧,那个password是不是进行那个加密,这个password测密码听懂了,对检测密码,然后呢,接下来呢,对密码进行一个加密操作,你再把这个据给它传出去就可以了了,明白了吧,那么或用将控框架提供的密码提供的这个加密方式,比如举个例子哈,如果是123456,那么每一次的就你你你写了五个密码码啊,都叫123456,加密后的结果是不一样的。
15:07
对吗?长度一致,但是内容不一样,听懂了吗?啊,这是它的特点啊,对,然后呢,如果你用Python中的MD5啊,就是这个MD5,不是说咱们Python里边有啊,它首先MD5包括哈希这都是一种加密方式,听懂了吗?啊,我们就说MD5的这种加密,如果你加密的是123456,你得到了一个固定长度的字符加密或者字符,然后一般是32位或者是64位,明白了吧,然后呢,如果你再加密一个123456,那么这一次的加密和上一次结果是一样的。听到了吧。明白了吧,啊,然后MD5呢,号称叫做不可逆的单向加密,不可逆就是我是可以通过密码铭文的密码来加密出来一个密文,但是不能通过这个密文来解析出来那个密码,听懂了吧。明白啥意思吗?思啊,但是有一个人做了一个库库。你123456得到那个密码是固定的,他把所有能加密的东西全部加密,然后存到那个库里边,然后你每一次写东西啊,写东西他都那个给你加密,然后去检测你有没有这个密文。
16:09
明白了吧,或者把你的密文,然后放过去帮你检测你对应的那个铭文密码值什么,明白了吧,有人做了一个这样的东西,对,所以MD5呢,呃一呃,这些年来一直基本上都算是啊。就密码界的翘楚吧,基本上都是在使用MD的方式知道吧,直到其他框架啊,其他框架里边提供了额外的一些其他的加密方法,明白我的意思吧,啊,就普罗大众啊,普罗大众就像我们这种啊,不做那个什么高精尖的这种特别牛逼的项目的时候啊,就无所谓了啊就MD5或者是这框架提供的都可以听懂了吧,那如果你要做一些大型项目的话,呃,就高精尖的一些项目这个密码啊,他们提供的这个还不足够。啊,还需要再加一些特制的密码,然后配进去知道吧,啊配进去,然后来提供这个,呃,解决这个问题题知道主要是防止别人去装空啊装货好了,好大概介绍一下了解就行了哈,那么接下来我们看这个密码加密怎么处理哈,我把这个包复制过来,然后在我们下面把它导入啊导入然后以后呢,我在这里用make passwordd来进行一个加密的处理,看一下它这个用法哈,Make password第一个是你请求的过来的那个密码,第二参数填到第三个参数,写成加密的方式。
17:19
加密的方式哈来,也就是说你调用这个方法就可以了了,来执行密码的加密操作。来中号里边的pass。Word是吧,PPSSWD它就等于等于调用这个方法,然后把那个叫什么。啊。把data里边的password拿过来加密密看懂了吗?就是把这个密码加密后处理后再重新复制给他,能能懂我的意思吧?好,然后呢,这个时候我们再来看一下我们当前的数据对不对啊,是变成什么样子了?这个来刷新提交一下啊,继续提交就可以了,嗯,泡泡。哦,泡泡,我没写那个叫什么PPC是吧?嗯,哪一个啊,来继续走你。
18:03
好看这边边看边边。啊,看没看到了啊,Passwor是加过了,加密过了啊,然后Nina什么address这些都没有啊,但是呃,那个那个叫什么。头像咱们也把他删了哈,然后看一下他的密码成多少多少。你往上走来看一下一下。78位位。看到吧,78位的密码长度啊,就固定的都是78位位,明白了吧,啊前面这个,而且这个每一次加密的结果,前面这几行也都一样的,这个是加密方式,听了吧,加密方式对,然后之后啊,之后的内容可能都不一样了,就是说我下次再加你一个12356,可能不是这个东西了,听懂了吧,但是我他给你提供对应的解密方法,你只要把那个铭文给他,他会帮你验证这个密码对还是不对。听懂了吧?啊,这是没有关系的啊好,这个搞定以后,接下来执行数据的添加,导入我们对应的模型是不是就可以了啊,模型怎么导,我们的模型在哪里啊,在models里边对不对,所以你这里怎么写?
19:03
点。Models models对吧,嗯,我models。我这models,然后后边写users。我们我们模型是叫这个名字吗。啊对,这么写是不是也行。可以吧,嗯,来看一下哈,能不能做来数据的添加,OG等于我们的modelss,呃,这个users括号星星data直接这么说对吧,O这点cve是不是进行保存对吧,然后。然后你上这样的时候,我再把这个数据重新定义成face不就行了吗?对吧,我们数据库里边叫face对吧?啊记住它就行了,可以吧,嗯,没问题吧,好然后呢,执行数据的相关添加操作啊来看一下密码加密,我们先先测一下看有没有问题哈,来运行走你。好,没有问题吧,也没有报错对吧,没有报错的话,现在证明是不是数据已经成功了啊,已经是成功了啊,已经成功了,好,那么接下来我们就要加一个判断去测一下,就当前这个过程有没有问题,来串这样吧,整个内容全部包起来来TR。
20:17
懒的话,一般懒人就这么干。Except啊,然后呢,这里边是错误,然后如果走到这是不是正常对吧?啊来这里如果正常的话怎么办呢。It's TB response。十块不打标签对吧,嗯,SCPT。你如果需要谈提醒你就谈,不谈提醒的话,你就直接写就可以了,对吧,嗯,那location house。4REF等于一个什么?一个什么东西呢。跳到六百六去。但我在想另外一个问题,就是。就是那个提醒怎么做URL啊,等于revers写上咱们的my me,呃,My me_user是下游线in对吧,是是是这个地址吧,啊对啊入地址好这个就搞定了哈,然后呢,如果失败,对应的把这个方法从这C复制过来,如果失败了,咱们做到跳到咱们的A的页面。
21:19
黑的一面。然后这个位置提醒一下。嗯,添加400是吧,是吧。会员,会员添加失败。上面给他写上一句话吧,到时候再说有其他项目啊,回家添加成功可以吧,啊好,走到这个位置啊,就没问题了啊,这个就不需要了。OK。好了好了,那么接下来从这个位置哈,没有问题,以后它就会跳到会员的列表页面对吧。对不对啊,列表页面需要做什么呢?到模型里边去查就行了,对吧?啊,到模型里边去获取数据,然后做查询就可以了,所以这个地方来查询所有的会员数据,那就是date,等于我们的user.obgcts,点二获取所有对吧,然后接下来分配数据。
22:18
CNTT也行。然后下面呢,是加载模板,加载模板来把这个数变量复制到这个位置来,已分配是不是就过去了,对吧,反正它也是字点对吧,字点就过来了,好那么对应的在我们相对应的这个方法里面,是不把这个列表给我循环出来就可以了。对吧,你看他原来这个列表页index。第十五行。嗯,我今天写代码和昨天写代码缩进不一样。
23:03
我们调整一下,都按四个空格说定好吧。转为空格锁定可以吧,嗯,都用一个一种缩定格式啊对来。没有问题了啊,来刷新找你可以了吧,这个页面里边是不是有好多啊,然后我们删掉只留一个,然后把这个内容给它展示出来就可以了,对吧?啊好,那么删掉的话就是这个页面中。TR。TRTRTRT。可以吧,然后你看到他每一个类还不一样,对吧,嗯,都给他删了,不要不要。每一个类不要,嗯不一样,是他那个做了一个那个什么隔行换一个颜色,应该是哈来for in date。对,然后下面来一个花括号百号诶。诶,上面的盘不能动啊,退回去。
24:00
划括号,百分号and four,好,然后把这个内容展开,这个图片地址是不是换掉,换成那个画括号,画括号。i.U2.face是吧,Face的头像好,然后这个位置呢,写他的名字对吧?画括号,画括号I点妹妹。啊,然后后面还有什么哦,没有内幕,手机号对吧,还有一个昵称对吧,啊尼科内,但一般没填是吧,一个内容,然后还有什么,哎呦呦,怎么忘了一个东西,他什么时间注册的时候没有。是没有设置那个注册时间。哦。应该加上,他应该加上。这里加上可以吧,这个时间。DE。等于models点。This time可以吗?REGISTER。
25:00
Date吧,可以吧,然后models.date time括号,然后有一个叫。O two a。No-A等于TE,看一下是不是这个属性啊。我记得好像是对来找到模型那个模型的定义这个位置,然后有一个date time,看到吗?Datetime然后呢,表示时间和日期,Datetime和date date其实是一种类型,然后里边有一个ought to no or to no it false这两个属性表示什么意思呢?嗯,如果是第一个啊,如果是后面这个属性,就是意味着在这个对象第一次被创建时,它会自动设置一个时间,听懂了吧?明白了吧,然后这个如果加上这个属性呢,那就是每一次更新这个数据的时候,他会把这个时间对应的也更新过来,明白吧,啊然后呢,我而且这两个是不能一块儿写的的,你只能在这个水平里边写一个,听懂了吧,我们现在是添加,就是只是在注册的时候把这个时间给它更新一下,所以这个位置看auto no a是不是就可以了啊,然后在这个地方给他改正错,这就可以了,这就它的注册时间间,明白了吧,啊,一会我们再去改哈,对,然后这个词呢,也不用去管,我们在操作的时候呢,它会自己把这个数据给添加进来。
26:18
啊,也不用我们去管啊,对好了,呃,时间给他写完了吗?这里画框画框啊,点date啊不对,Re re date。就这时间对吧,还有什么。密码肯定不能显示呀。头像、手机号、昵称,时间也就这么多了吧。啊,身份是吧,嗯身份,呃身份,我们这里身份这个改一下吧,改成一个长度好吧,这个身份关键是怎么改。零是什么?一是什么对吧,他都有哪一些身份呢。哦,我们写的是狼人是吧,狼人还有什么什么。
27:08
狼人预言家和平民是吧?嗯,来把这个写一下。那这个是一,这个是二对吧?啊,那你这边是不是对应的做判断就可以了啊,这边做判断就行了啊,来这个地方来复制一个把它删掉,然后这里呢去写一个判断,划括号,划括号把括号if判断啊当前的这个叫爱点。呃,Use use type对吧?U type,如果等等于它是字符串是吧?字符串啊,如果等等于零是什么?我们填成数字得了吧。行吧行吧,数据库里填充数字。能理解啥意思啊,转成数字类型啊,对,如果等等于零是平民。对吧,然后划括号百分号2e if2if i.use tap,如果等等于一,那就是什么预言家,预言家好,然后再来一个复制,放到后面这个是。
28:15
二那么这边是什么?狼人是吧,我写反了啊,零是狼人是吧,20平米是吧,他俩正好写反了可以了吧,然后花括号百分号。暗的对吧,可以吧,这是做一个判断啊判断剩下的还有吗?别的没了吧。别的没有了吧,嗯,好,上面这个是头像好ID是吧,显示来加一个ID过来。IID,其实ID显不显示都行,对,第一个是ID,第二个是头像,头像。哦,还有性别呢啊,行,再加一个。其实因为好多没有,你知道好多都没有。
29:05
啊头像,然后这个是。手机号。手机号,然后呢是昵称,然后是注册时间,然后是性别,然后还有是身份,身份。可以了吧。做的时间稍微换一下,放到最后可以吧。注册时间这个吧,那就。最后然后呢,不要忘了加那个竖线date date冒号叫什么对吧。Is冒号冒号可以了吧。行了,诶他哪里有错误误哦,后边写错了是吧?嗯,这个没加来复制往这里放。
30:04
好了,那么接下来我们把数据库先执行一下迁移,对吧,嗯,Makes。然后呢,他说已经有了那个re,然后怎么去设置一个默认值对吧。选择。然后那个时间。哎呀,这个时间怎么写。你可以设置一个什么。哦,自动设置一个时间间看到了吧,他是不是提醒你可以自动给你设置一个时间,你看啊,然后得放到默认值啊对,然后BY让你做什么操作对吧?或者你可以自己去设置一个相关的时间日期,对吧?嗯,那我们就设置完了。MIGMIGRATE。然后。
31:00
运行服务。啊来刷新当你一面,现在是不是有一个,哎,性别怎么等于。哦,这个我这个性别,我看啊性别。是none等于处啊,也就是他没写,没写的时候怎么办啊,给个默认值,到时候对,然后这个u type这个类型没改,它还是一个。啊,那算了,那就不改了,那我们这边判断的时候,你是不是得改。对吧,这个得改对,要不然他不对呀。然后这个这个给默认值叫呃,DEFDEF冒号V。未知。来先。头剩下的就头像问题对吧,头像你看一下咱们怎么回事啊。看加载出来什么什么,诶诶。
32:00
诶,怎么加载到那去了。My ladygaga。我写错了吧?是不是数据库里的默认值给写错了,看一下。这个写错了对吧,他应该是从史蒂格木路下边去找买me,然后再去找那个叫什么。对吧,然后再去找妹子吧。对不对,是不是这样写啊,这这是那个数据库的数据给配错了啊对,这个没关系,好,然后还有问题,这个赛是好像给个默认值也不对,因为数据库里你填的是到时候填的是零一对不对。你看一下你这边填的是不。你光给默认值是不是也不行,对吧,所以这里还是得加一个什么对,加个判断哈,光给默认值还不行。孟子还不可以。但这个判断有没有简写的方法呢?这么写太长了。
33:01
哎,再找吧,回头再找吧,来这里if判断当前二点,如果结果等等于字符串的零对吧,那就是怎么办?显示一个是吧,然后划括号百分号。ELEELE。If,然后呢,如果i.X它等等于字不串的一,然后这个位置显示一个男是吧?难那如果都不是画括号百分号。20,那就是未知。对吧,然后画括号反问号的对吧,测一下。哪里有问题?嗯。张总一有什么问题?等等于零。等于一。
34:00
20、哪写错了?保存。看还有没有双。刷新。If。暗的衣服。哎。等等于零。有什么错误?等于零,往数据库里看,数据库里是不是。这个空格不没关系。
35:02
E我没写错吧,没错。然后20未知,最后结束。我感觉我没有写错。百分号S什么等等于零的问题。刷新。傻逼吗你?没写错呀,这个这个位置吗?没错,你看。刷新没错过吧,不是这个空格的事儿,因为前后这个空格无所谓,我觉得应该是这里的问题。这里的问题题。看到了吗?看到了吗?就是这个在写的时候前后加个空格。看到了吧,对,但是这个空格无所谓,这个空格无所谓,但是也就说在判断符的前后要加三个。
36:01
看了吧,是这个位置有问题。而且问题也很明显,就是说白了,你那个,呃,你前后都不一样,你如果都一样也行。前后都不一样,前面有空格,这里没有空格,明白了吧,这问题行了行了,这小这是注意点哈,把它注意一下就行好了,其他信息就齐了吧,那除了数据库的那个那个叫什么用户名不对对吧,然后又报错了,看一下。啊,这个是那个图片没有找到不用管它对吧?啊,到时候我们把它删掉就行,然后再点击新增看一下啊,走一下这个流程,这谁是谁的号。我也不知道。12345678,然后不选头像啊,这些都不选好吧,都不选,然后点击提交。Reverse is not。走到上面来了。继续。怎么?
37:01
Users跳哪去了?怎么解析错误?这个地址怎么还解析的有问题啊?这个味道哈,他的地址解析的有问题,我看一下我这边有没有写错哈。My users index。MY奖,然后看这边有没有问题。A lot。哦对对对对对,你加S。这个也得交你解析是吧,你解析啊。来那那种吧,那就到index,我们手动跳过来,先看这个位置。填成了两次,也就是说一开始是上面都走完了,在这里报的错对吧,但是上面都已经走完了,明白意思吧,对,所以刚才那个数据也进去了啊对,然后再新增一个看一下,再走一下流程啊,我不知道这个手机号是谁的啊,你们别乱打。天。
38:00
好了,进来了吧,嗯,进来了啊好的,基本的默认昵称这里。昵称这里昵称这里给个吧,显示的时候行吧d fair啊冒号。天气天气。上线。嗯。行了吧,那这个位置这个添加是不是就完事了,嗯,添加完事,剩下的一步就是做删除做编辑对吧?啊做删除哦不对。这里咱还没做,那个叫添加头像呢,对吧,现在是没选择头像,那选择头像了怎么办,对不对,选择头像了怎么办呢?选择头像这里怎么办,得去调那个方法是吧?啊调方法date中括号里边的P啊,那个叫Facebook Facebook应该等于我们调用的那个方法叫image。对吧,啊,调查方法,调查方法的时候呢,我们把那个叫谁把谁传过去的,我们看一下啊。
39:05
呃,Pic and,并且,并且这个叫re request点。les.get括号pic也都存在。啊,就是他有。他如果有。并且他也有。就他为真,并且他也为真真,那么这个时候再上传头角角对吧。能理解吗?不能理解。你知道我写的这个东西是啥吗?对,就是接收上传的文件,如果这个东西没有。如果这个东西没有,是不是证明没上传,也就是说我在这里加了两个判断条件,明白了吧,它存在,并且它存在证明才上传头像,听懂了吧,省得我们这里边就不用再做头像上传验证了,能了解意思吧。
40:02
听懂了吧?来接下来就把这函数写一下就行了,来封装这个是封装,呃,封装这个头像上传方法。来,你们会默写吧?会默写吗?会默写吗?嗯,首先拿到那那个他的名字是吧,二点内是不是他的名字对吧,然后点SPSS。叫什么来?SPRI对吧,RI括号,然后呢,点,然后点泡宝是把它名字的最后拿过来了,对吧,然后这个名字的前面在拼接上。随机数加时间串是吧?来音port的随机数,而NM逗号time对吧?好,这里怎么做呢?就是time.time括号加上ran DOM点。
41:01
括号。对吧,然后再加上这个对不对,中间还得加一个点是吧,前面是换成字符串。叫str对吧,然后前面拿个变量接收一下fair。对吧。对不对啊,这是文件拼接文件名是吧?拼文件名以后执行文件的上传,用我们的open wi啊,Wi是吧?啊,然后位置open括号,打开咱们的文件上传目录对吧?然后呢,以WB加的方式往里写入,然后呢,Is FP对吧。对不对,这个地址我们先不写哈,地址先不写这对吧,ip.wr写入写入谁呢?写入fair点啊,你要能切片,要么不切片,不切片是不是直接写啊就完事了对吧?然后呢,成功以后怎么办呢?Return返回我们的一个地址加上fair name对不对。
42:09
对不对,兄弟们,这个是文件名对吧。是不是文件名啊文件名,然后这个地方是差什么差文件路径对吧吧,文件路径加文文件名对不对,那这个位置怎么做。上到哪里去了?ST。下的。还还是有一个UPS是吧,文件夹对吧。然后再去放那个当前的文件名,那就是括号对吗。哪里哪里哪里。哪里哪里。啊,不漏文件夹,这个没有没有啊,这个文件夹现在还没有。对吧,上传图像前后台,前后台都得用啊,那就建一个公共的文件夹目录呗,无所谓啊,就说白了,我把它上传到这里,反正不管上传哪,你都能用到。
43:06
对吧,只要在这个目录里边升级,你是不是都能用得到到的。能理解这意思吧,U是不是这个位置置,嗯,总可以了吧。明白吧,好,然后同样的复制到下边来,是不返回的时候也返回这个这个。当时把这个点去掉,去掉。对吗?啊,反正把去掉去掉,对这就齐了吧吧。是不是啊,然后呢,当然了,这里边是成功还是失败是吧T。先别踹了。别算了,直接返回先看一下可以吧啊调用方法,然后在这里你看这里调用方法,把那个文件传过去,回来之后得到了一个那个叫数据对象,然后这边呢,把它弹掉了,对吧?但是这个date face是不是有啊,如果没有的话,Date face也是空的对不对。明白吗?嗯,好了,然后我们做一下尝试啊,来这个页面刷新一下,看看服务器重启了吗。语法错误。第34行。
44:11
语法有错误,GS里边才才这么写的,对吧?啊,PP也这么写,对,然后咱们拍这里边的写没有那个符号,你们刚才是不是蒙那个符号了,来沙鸡啊,给面写一下啊这位置。12345678,然后选择一个头像,这个头像前面那个什么,我就没做,你自己做可以吧。可以吗?就预预加载显示一样的效果可以吧,就把那个代码拿过来,那个把那个叫什么改一下就行了,对把那个类名什么的改一改就行了,其他不用动啊,然后点击提交会员添加失败退回来了。哪里失败的也没报错呀。哦,就是在这个位置,就证明是在这儿出了问题是吧。这里面出了问题题。
45:01
报个错啊,让他报个错看看。添加一个头像。狗狗点击提交。诶。没生效吗?来,放心,停下来。音的OS什么is没有找到文件目录吗?我看我写对不对哈。S sta t下边的us。也有可能在这里有问题了,是吧吧,你妹的一个阿。方法,把费传进去。如果都有都正确的话,非常正确,我觉得应该没啥问题啊这个逻辑。12345678选择头像点击打开,然后点击提交,报个错。
46:08
这边的子叫什么么?哎,这个妹子呢,我怎么没看到ID下了。我怎么看不到了呢?哦,在这呢,再往上这内部能偏心对。Post,哦哦对,还是换了那个问题了,就是如果你用Fi,就是他上传的文件这个data这里边这个位置没有。对吧,所以你只能判断他了。怎么怕他?明白啥意思吗?就是这个文件,就是如果他选择了文件上传,那你只能用fair来获取取。没有了吗?如果他没有上文件,那你就用data能获取,听懂了吗?所以那这里我们就用fair获取它,如果没有的话就是文档,所以在这里加个参对吧,然后data加一个face,如果他注意哈,如果这个位置没走,那证明是。没上传没选择文件的话,没选择文件,那data里边是不是就能接到这个,所以在这里把它删掉啊,这个这个地方出问题了。
47:06
来看一下是不是不是。对。12345678选择头像。点击打开,然后点击提交。Random。Random run in。还再来吗?可以了吧,对,就刚才还是我怎么老犯这个错误呢,误这错误发现好几回了,不应该啊。不像我的风格,错误永远只能犯一次。你们听说过啤酒瓶的故事吗?听说过吗?啤啤酒瓶的故事没听说过是吗?好了好了,那这位置是不是就完事了,完事以后这里其实你可以去加一个,那个叫什么呀,判断叫try ex串T串ex来这里,如果在这个过程当中出现了问题怎么办呢?这里是EXCE冒号,然后一个。
48:00
可以吧,好,那这个地方我还要再说一句哈,就是这个位置啊,这个位置置咱们还可以再改一改,改现在用的是相对路径,然后往里写的对吧,其实应该。改成绝对路径径。为什么呢?因为咱们有一个变量,大家还有没有印象。对,叫base DR,我不知道大家有没有哈,然后我们在哪里呢?在这个位置来打印一下,Print print print print print,那个叫base。杠DR是是这个吧,然后但是它你得需要把它导入是吧,所以这个位置呢,嗯,从我们的from点点。诶,从form web里边去import it导入set tings,然后用settings点上这个方法,点上这个变量名,是不是从这个模块中找到这个,找到这个变量名明白了吧?然我们看一下能不能好使哈,刷新。运行这个位置拿到了吗。
49:00
拿到了吗?对这个变量。我觉得比较合适DS哦,我知道你哦,你说的是这个这个嗯,打开看一下拉到最后是这个是吧,是这个是吧,对话你说的是这个吧,呃,这个也行,但是后面呢,这个还得改。对,可能还面临着改改的问题,我忘了改不改了哈,对,没关系,你改成他也行,行,你改成他也可以,你来看这位置位置,嗯,来来。刷新。哦,但是你得到的结果是个那个什么诶。对呀。来看这个味道。哎,不是刷新新。怎么回事,怎么转那么久要要要。看这位置,你得到结果是个什么,是个列表,看到了吧,是个列表。对,但但是取出来的话,就是一个那个叫字典啊,不一个字符串,对那个这个也可以啊,你也可以就写到这里这个地方也行。
50:04
最后的位置,这个位置吗?都是双斜杠是吧?这是因为你把它放到自放到列表里边了,你把它提成字符串,它就是一个单斜线。那天记得给谁解决这个问题了,你的是吧是吧,啊对,就出这问题,就是单个拿出来怎么都好使,放到列表里边就他妈不对。对,其实不是那个叫什么的问题,就是往里放的往里啊,就是列表里边里边放的往里知道吧,好了。啊,所以你看你到时候是不是可以把这个地址改成活的呀呀,就省得写的这么写的这么绝对了了,明白了吧,写成活的就行了,对我这里就不改了,可以吧啊,到时候需要改的时候,我们会有那天需要改,需要改的时候我们再说可以不啊,暂时就不动它了啊好了,那这样的话,会员的添加头像的上传,还有这个这个列表的处理是不是就基本完事了啊,基本就告一段落了啊,这个是基本任务啊。
我来说两句