「时光不负,创作不停,本文正在参加2021年终总结征文大赛」
今年学了python的那些东西?
- Flask框架 (bug)
- python第三方库requests和内库urllib
- Scrapy爬虫框架
- Django框架
Flask的总结
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全
且容易上手。........保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具
有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。
这是Flask的简介,写了一段时间Flask发现确实易于搭建,而且代码比较方便,就是写项目打包的时
候出现了问题,不过这不是Flask打包的问题,而是打包的时候代码内部有PaddlePaddle框架的第三
方库,关于它的bug,不得不提一提了。
打包的第三方库是Pyinstaller,命令是pyinstall -F app.py,需要注意的是app.py有个相当于配
置文件的app.spec,打包前的一些配置文件路径可以写入。但是不管写了啥最后打包会生成两个文件
夹嘛,build和dist,很多框架打包都是这个样式,反正都看dist里的内容的,dist中的app.exe是
执行文件,但是默认是裸exe文件,要运行就得把模板文件,静态资源文件复制到dist的文件夹下。
出现的bug:
双击打开exe,十分钟后出现报错信息一闪而过。
解决方案: 打开目录文件夹,找到目录的框,在前面加“cmd ”回车跳到命令行,在命令行中app.exe。
即可看到报错信息。
这个错误确实有点离谱
解决方案也简单的一批,可是我进入了一个误区,本想打包分享的,所以我以为是自己电脑缺失了
啥文件,就开始重新配置了python的环境并重新安装了所有的第三方库,后面在这遇到了一个从
大一开始,至今无法解决的Bug:
**缺少`Microsoft Visual C++ 2015 build tools**
网上有各种各样的解决方案,我几乎每年都去尝试解决方案,但是最终都是无果,每当我忘记这个bug
的时候它又总是出现。我安装了Microsoft Visual C++ 2015-2019、一个博主提到删除比13版本更新
的版本重新安装、下载一些大佬提供的2015-2019的微型包,都尝试过,但是每次安装paddlex的时候都
出现了这个问题,至于我上次怎么安装完成的,我就去装了口水就完成了,当时我并不在意,因为我不知道
安装paddlex会出现这个错误
至于上面这个bug的解决方案,我只能复制以前成功安装过的paddlex==1.3.7的包了。 还有一个有很大几率解决的方法,换电脑,轻薄本性能确实是不咋地,python搞深度学习时我电脑已经奄奄一息了,至今除了在paddlepaddle的服务器上跑模型之外,已经完全放弃治疗了
python第三方库requests和内库urllib
这些都是用来爬取简单网页使用比较多的爬虫第三方库,一些难度大一点的可能就是需要使用到Scrapy
框架去爬取或者模拟浏览器selenium自动化爬取了。基本上一些简单的视频,音频,图片,文字都可以
使用这两个库解决,但是视频的话还是需要有点技术的,不是说去网上找视频看看,新手都能学会的,
如果是新手看到这关于爬虫的话,还是听取下我的建议:小说网站的资源大多都是爬的,所以很多
小说网站几乎没有反爬技术,入门的最好是爬小说,图片基本也是这样,但是图片网站比较少,
那些没反爬技术的网址估计都被爬崩了。音频的话主要是查找比较麻烦,视频不必说了查找和整合
都比较麻烦,不过学废了就不算麻烦了,网上有教程,但是建议从小说图片熟悉后再来音视频。
再说说关于requests和urllib的区别吧,urllib内库显而易见,不用下载包就能使用,但缺点在于
经常出现文字编码问题,requests的话各方面都不错,很少会需要用到非常的解码手段,要文字.text,
要byte就.content 十分方便,毕竟是第三方库,如果没有比内库更好的优点早就被remove了。
关于Scrapy爬虫框架
速成Scrapy 因为某个比赛当时章程中提到了这个框架,就去学习了下,至于它的优点:模块化,
失败可以再次请求。流程:根据自己的理解是自己的感悟:在使用了一些爬虫urllib,request等
第三方库后,明显发现这些爬虫方式从信息查询到信息抓取都有各式各样的写法,而且还得用各
种请求头,防盗链啥的来避免被反爬,Scrapy形成了一个体系和一套流程,让爬取的过程更加的
系统化。流程图如下,当做复习用。
Django框架
写的有点多了,这里就稍微提一下,这个框架是我用来写前后端的,Django开发确实比较方便,
特别是ORM对接数据库,这个确实比价顺手,数据库迁移更是尝到了甜头,但是网上资源比较少,
这时候应该反思下,为啥Django出现这么久了只有当人们提到python框架的时候才有人想起来,
而提到web后端,大家想到的都是SSM,Springboot,python的优势是做数据分析处理,Java主
要是搞后端的,所以提及web很多人第一时间想到的就是它们了。