坑点一 登录认证装饰器使用:
登录认证装饰器使用不熟练,对登录认证的思想不明确,不敏感。之前遇到都是选择避开或者等着原地爆炸。
这里还是选择恶补把它解决掉。
def login_auth(func): #这里的inner函数中传入的参数就是传入被装饰的函数,inner函数也就代表被装饰的函数, def inner(*args,**kwargs): #args形参中包含传入原函数的所有参数,这里我们需要知道我们到底在原函数中传入了 #哪些参数,位置是否正确,这是最基本的前提条件,不然报错,调试非常痛苦 if args[1].get('cmd')in [ i for i in args[2].values()]: #在这个装饰中是以用户登录状态字典中的用户名密文中是否存在于服务器字典中作为登录认证依据 #如果验证通过就直接执行被装饰函数 res = func(*args,**kwargs) return res else: #如果没有就发送未登录信息 dic = {"meg":"没有登录","flag":False} common.send_1(args[0],dic) #最后释放inner函数 return inner
坑点二 上传下载:
这是个天坑,自己没事仔细梳理思路时感觉很清晰,大概思路不用多想就会在脑海中蹦出来,
但是一旦需要自己去写时就会发现,原来的思路一点都不会出现,痛苦。
在写的时候也是,强迫自己硬写,不断的问身边的人,不断的修改小逻辑引发的bug最终,写了出来
首先再写上传下载功能首先拼接出,下载文件的绝对路径,根据传来的文件名加绝对路径拼接出文件的路径。
上传下载时要先发送报头信息,报头中包含文件名,和文件大小。发送报头是为了防止出现粘包问题。接收文件的一端可以将文件的大小作为接收文件的依据。文件大小有多少就接收多少。这就不会发生年粘包的问题了。
总之思路一定要够清晰,要敢写。不能怕出错。
坑点三 书写格式规范和逻辑思路坑点:
在写的时候遇到好多书写上的格式错误,导致程序错误,这种程序报错是最难找的,多一个字母或者少一个字母非常难找,在参数时 形参的位置一定要准确,接收也要个数和位置一定要定位好,有些参数用不到可以不用,但是接收参数的个数和位置一定要对应好。
缩进也很致命,在逻辑上和有返回值的时候更加明显,因为缩进造成的问题,搞得我也是头皮发麻。
代码错误因为没有做好记录,等再出现会截取添加进来。