邮件编程
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议,使用TCP协议25端口,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装
配置Linux的邮件服务
![](https://img-blog.csdnimg.cn/direct/3d37f68e6a574246aa24d35fe5658908.png)
![](https://img-blog.csdnimg.cn/direct/a3d0afcf312344b5a49541ab6b6a17ee.png)
创建邮件用户
![](https://img-blog.csdnimg.cn/direct/a1865670f20f4d1a813a0979425ff19c.png)
标准邮件需要三个头部信息:From:发件人。To:收件人。Subject:主题
Python SMTP对象使用sendmail方法发送邮件
导入MIMEText邮件主题模块
导入MIMEText邮件主题模块
![](https://img-blog.csdnimg.cn/direct/a505075d1f8449f18c08e4c52d452612.png)
![](https://img-blog.csdnimg.cn/direct/0e4cabceee5a4c9d9dd6b3b8badf89e8.png)
![](https://img-blog.csdnimg.cn/direct/afe8dc1c566449fa8877a24b25a2515a.png)
![](https://img-blog.csdnimg.cn/direct/f2446e499c03462398f8784e1821faa0.png)
![](https://img-blog.csdnimg.cn/direct/61eabea42306480faf75a7b9f0012d14.png)
![](https://img-blog.csdnimg.cn/direct/3c33ac18090247ef8ddb5ab903c5cc6d.png)
![](https://img-blog.csdnimg.cn/direct/123b6ce44b224ec0ab0d3fc5fe168d79.png)
paramiko模块:实现对SSH的相关功能,例如要对服务器进行远程管理的操作,就需要使用此模块。
![](https://img-blog.csdnimg.cn/direct/4356617bcc56407cb599f3684d606ca8.png)
![](https://img-blog.csdnimg.cn/direct/34968db53a544356953368855f00cdb3.png)
ssh中有三个管道存储信息,第一个存储输入信息管道,第二个为执行命令成功信息管道,第三个为执行命令失败信息管道
![](https://img-blog.csdnimg.cn/direct/9faaa584f08e48eca5a0ba083bc15ef7.png)
使用read读取管道存储的信息
![](https://img-blog.csdnimg.cn/direct/0e89077a6a2c47d8a864f578caea1719.png)
![](https://img-blog.csdnimg.cn/direct/687fcd44002f431eb133ee06d649e6ca.png)
decode将字节串转换为字符串
![](https://img-blog.csdnimg.cn/direct/39ed61bc2ef84241aa1cf5b4e0d1f5f7.png)
![](https://img-blog.csdnimg.cn/direct/cccf7eed0d9a4b4086557644f616ff1f.png)
封装成函数
![](https://img-blog.csdnimg.cn/direct/d80949bdb24c41b2ab2da721c954ce6d.png)
![](https://img-blog.csdnimg.cn/direct/552753c7959d448883ba913b41161e36.png)
PyMySQL:Python+MySQL
在Linux上安装MariaDB数据库
![](https://img-blog.csdnimg.cn/direct/bce27891853f4823a63d127b75e120b6.png)
![](https://img-blog.csdnimg.cn/direct/3121a8041fe9478d9a7d242435bef0a7.png)
![](https://img-blog.csdnimg.cn/direct/74811299a2be477c86aa58b87f2746b4.png)
![](https://img-blog.csdnimg.cn/direct/650495fb2f254069a582170048acd3ee.png)
游标(cursor):就是游动的标识,通俗的说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行。
![](https://img-blog.csdnimg.cn/direct/7b1da1d4366740a9828a52a4957c55f8.png)
执行完后不能重复执行
![](https://img-blog.csdnimg.cn/direct/7d2479f54c4c4ff4a6763b8506b65a5f.png)
![](https://img-blog.csdnimg.cn/direct/8d05609e0c98406ea85d6b86fddd0f64.png)
查看数据库
![](https://img-blog.csdnimg.cn/direct/cdf4a1a800274efb87a02f25e3761035.png)
查询数据
![](https://img-blog.csdnimg.cn/direct/61add0ffd9294e4aad8c8248ac4577d1.png)
![](https://img-blog.csdnimg.cn/direct/6a83b2803ebf48d4ad47c8f9d689a6f2.png)
更新数据
![](https://img-blog.csdnimg.cn/direct/9ac7fb98f6714dc0a2c2e4bc42791150.png)
![](https://img-blog.csdnimg.cn/direct/14dd45acf253402ab3873276f8a01632.png)
删除数据
![](https://img-blog.csdnimg.cn/direct/2be1cfeaa510477982dec1e92ce95b6b.png)
![](https://img-blog.csdnimg.cn/direct/5572b3bcc78d440cb13bc542f15f79e8.png)
练习:员工表有有FIRST_NAME VARCHAR(20),LAST_NAMEVARCHAR(20),AGE INT,SEX VARCHAR(1),INCOMEFLOAT字段
使用PyMySQL创建该表
使用PyMySQL添加以下三条数据
1.‘Jack’,‘A ’,22,‘男’,20000
使用PyMySQL创建该表
使用PyMySQL添加以下三条数据
1.‘Jack’,‘A ’,22,‘男’,20000
2.‘Merry’,‘B ’,18,‘女’,16000
3.‘Tom’,‘C’,31,‘男’,19000
使用PyMySQL查询所有用户信息,并打印结果
将FIRST_NAME 为Jack的用户工资改成10000
删除 FIRST NAME 为Tom的用户信息
![](https://img-blog.csdnimg.cn/direct/ef67c7f376c641459b7a6ec01317cc6b.png)
![](https://img-blog.csdnimg.cn/direct/9cf1b36c5f284814b2ae03f5808c5a0a.png)
![](https://img-blog.csdnimg.cn/direct/6174bd5782bc49bfaff118a9984fbcae.png)
爬虫:模拟人类从网络中获取数据的行为
requests模块:requests是用Python语言编写的、优雅而简单的HTTP库requests内部采用来urillib3
requests使用起来肯定会比urillib3更简单便捷requests需要单独安装
requests使用起来肯定会比urillib3更简单便捷requests需要单独安装
![](https://img-blog.csdnimg.cn/direct/a7e261095f104e92ad9fc126acad2475.png)
GET:读请求(获取数据),通过requests发送一个GET请求,需要在URL里请求的参数可通过params传递
POST:添加,与GET不同的是,POST请求新增了一个可选参数data,需要通过POST请求传递的body里的数据可以通过data传递
DELETE:删除
PATCH/PUT:更新
![](https://img-blog.csdnimg.cn/direct/8d930b561ce1468480969f7803d8ab12.png)
![](https://img-blog.csdnimg.cn/direct/ecf5c642f60b4da58f324c96b59fc8e5.png)
![](https://img-blog.csdnimg.cn/direct/4f1940d718454c98bc2b2526cc696896.png)
处理非文本
![](https://img-blog.csdnimg.cn/direct/12ddff8b745347508400f220958d2455.png)
![](https://img-blog.csdnimg.cn/direct/26c0862b32774757a1a5ea92b58e6c25.png)
![](https://img-blog.csdnimg.cn/direct/4af8d060cd7941578eda98d21f66b5a9.png)
![](https://img-blog.csdnimg.cn/direct/ffac06a0a9db408da1251387bc54fb17.png)
eog命令:查看图片
![](https://img-blog.csdnimg.cn/direct/38bc6b15a4c74e0aa0606b56b2aa0f0b.png)
将新浪首页的图片下载
![](https://img-blog.csdnimg.cn/direct/3431958f366347be8b30abe2dc9a5068.png)
![](https://img-blog.csdnimg.cn/direct/e3a1e2fa5def4ace9523b9d7539dd85d.png)
![](https://img-blog.csdnimg.cn/direct/258479253547476e9dae0c978b233fa9.png)
![](https://img-blog.csdnimg.cn/direct/86e45eab1938438fbf74360cb84003f2.png)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成基于JavaScript Programming Language。JSON采用完全独立于语言的文本格式,但是也使用了类似于c语言家族的习惯(包括C, C++, C, Java, JavaScript,Perl,Python等)
这些特性使JSON成为理想的数据交换语言
这些特性使JSON成为理想的数据交换语言
![](https://img-blog.csdnimg.cn/direct/20c4493b60fe43898e5278176dc40207.png)
![](https://img-blog.csdnimg.cn/direct/86678dcefd20454298e8e90a8ef7b174.png)
网页转换为json
![](https://img-blog.csdnimg.cn/direct/34415bb07e4647198a9b10689676c767.png)
获取简书首页的标题
![](https://img-blog.csdnimg.cn/direct/5e533a6f78b743338437a037af42d3fc.png)
该网页禁止爬虫(反爬虫)
![](https://img-blog.csdnimg.cn/direct/875e67d660cb48bf8500673ab3ede643.png)
反反爬虫
![](https://img-blog.csdnimg.cn/direct/c69ecd68ef2d495fa20c88de3e00184d.png)
此时就能访问
![](https://img-blog.csdnimg.cn/direct/d026b8450e1b456d9e413dc1a536dd70.png)
pickle模块:把数据写入文件时,常规的文件方法只能把字符串对象写入。其他数据需先转换成字符串再写入文件。python提供了一个标准的模块,称为pickle。使用它可以在一个文件中存储任何python对象,之后又可以把它完整无缺地取出来。
文件对象写入列表就会报错
文件对象写入列表就会报错
![](https://img-blog.csdnimg.cn/direct/5a1062631c4345659b3ba1aebe9877c5.png)
![](https://img-blog.csdnimg.cn/direct/b45d0c3e397a4d04a69347360acba19f.png)
将文件写入磁盘
![](https://img-blog.csdnimg.cn/direct/bfb93265c4f24b06a758cbd4533d3fa9.png)
从磁盘中读取
![](https://img-blog.csdnimg.cn/direct/8faed158cb5f4e729def1ec445ffde7a.png)
![](https://img-blog.csdnimg.cn/direct/e68f17703362495d8e5b680633b580a6.png)
练习:
![](https://img-blog.csdnimg.cn/direct/1472fae906ed477ebcda1089efe4d6c6.png)
当下次执行程序时注册 的用户都消失了,将用户数据存储到磁盘中
![](https://img-blog.csdnimg.cn/direct/b8b2d0c4b4da4a0a8d8660f960487ba7.png)