一、前言
最近本都是开开心心的打开电脑写一些祖传BUG
但一个报错阻碍了我写BUG的进度!
这年代还有能阻碍我写BUG的报错???
二、解决过程
一个新项目要做token认证,所以拷了原来的项目代码
没错,高级CV工程师就是我!!!
加入了一些token配置信息后,启动项目准备调试。
启动很成功没有任何报错。
然后启动前端项目开始一天的写BUG时间!
结果登录的时候就报错了!!
把之前项目的代码拷过来还会报错?
有点奇怪,但都是小场面!
开始调试
结果一看错误日志,有点慌了!
是restframework内部(第三方包)报出的错误!
如果是自己的代码报错,还可以根据哪行报错和错误信息去排查原因(一般自己代码报错都是秒改)
第三包内部报的错,如果没有明显的错误提示排查就要花费些时间!
稍微有点慌!
报错日志分析出来暂时没有提供什么有用的信息!
跳转到第三包源码内部,还是没有看出为啥报错!
经调试,再次确认并未走进我的方法
然后上百度大法,通过百度大致定位到问题
test = (1) for i in test: print(i)
上述代码执行时会报不可迭代的错误
test=(1),test的类型并不是一个元组
而是直接把1赋值给了test,这个时候的test是等于1的
所以在迭代test的时候才会报不可迭代的错误!
要定义元组的话,应该这样定义:test = (1,)
这个时候test就是一个可迭代的对象了
联想到最开始更改了django 的配置文件,返回去查看
果然!! 少了一个逗号!
加上后,问题解决!!!
三、总结
错误本身很简单,只是开始源码报错让我有点没有解决思路!
还是经验太少了!
相信再干100年,向天再借500年!
遇到类似的问题,就能够快速的定位并解决了!!