当前位置:   article > 正文

werkzeug第一个坑_werkzeug漏洞

werkzeug漏洞

最近在买了一本关于TensorFlow 2.0的实战编程书(走向TensorFlow 2.0深度学习应用编程快速入门),里面是附带源码,书里说的代码都是验证过的,对于一个初学者来说,从零开始搭建项目,确实是会遇到不同的坑。由于自己很久没有写过python代码,而且电脑也是新的,python相关环境都没有。首先需要装好Anaconda,再安装TensorFlow相关库,再搞个开发工具pycharm,配置环境,一番折腾,终于可以把基本环境搞好。下一步就是导入书本里的源码工程。

这次工程是“基于CNN的图像识别”,代码工程主要包含了训练数据读取、训练模型保存、模型预测、以及Web界面,整体来说,工程虽小,但内容还是挺丰富的。导入工程,感觉没什么报错,心里一喜。直接运行主程序,也没有报错,打开web界面,上传验证。(注:下面的IP地址,我是修改过的,原来是app.run(host = '0.0.0.0', port = 8808,我懒得去配置自己的电脑host,就直接在代码里改成127.0.0.1。如果哪位网友也用相同的代码,可能需要注意一下了)。

然后直接在浏览器打开上面的url“http://127.0.0.1:8008/ ”。

 

好像没报错,看到一丝希望。

根据界面提上,上传一张图片测试一下效果。选张dog图片看看。

 

然后点击“上传”,而结果如下:

Internal Server Error

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

 

出现问题,只能想办法解决,自己也是第一次搞python web的东西,没什么经验。只能直接百度了,搜出来的结果,有说是flask的方法调用有问题,有得说flask版本不一样。都尝试了一下网上提到的解决方法,最后还是报错。

最后在网上有看到说,打开调试模式,方便找错。

app.run(host="127.0.0.1", port=8008, debug=False)

改成:

app.run(host="127.0.0.1", port=8008, debug=True)

 

最后再走一遍流程,然而还是报错,然后自己详细对比了一下只是把控制台的错误日志放到web到界面而已,看来自己真的被坑晕了,感觉上一步是多此一举。。。

 

没办法,只能拿上面的报错日志在百度里搜,在搜之前,上面这句报错信息“AttributeError: module 'werkzeug' has no attribute 'secure_filename'”大概意思是werkzeug没有secure_filename的属性或者方法。我自己细想了一下,既然书里说代码作者都自己验证过,代码我没动过它,那只能说werkzeug的版本有问题,但代码里又没有说用了哪个版本,先搞个最新的版本,还是提示这个错误。最后在网上搜了一下,找到以下解决方案。

导入以下库:

from werkzeug.utils import secure_filename

 

把原来的代码修改一下。

secure_filename = werkzeug.secure_filename(img_file.filename)

改成

secure_filename = secure_filename(img_file.filename)

 

再跑一次流程试试。

 

出现上图,则表明,代码工程正常跑起来了。

 

从这次坑来说,可能对一些经验丰富开发者来说,可能会觉得搞笑,自己不会范这些错,或者能很快解决问题。确实,但我们很多时候都是从零开始学起,在前期总是会遇到各种问题的坑,自己只能多记录一下,与大家一起分享一下,能帮到一个算一个。。。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/914305
推荐阅读
相关标签
  

闽ICP备14008679号