邮件编程
在Linux的终端上,查看邮件服务器是否开启
1 | rpm -q postfix || yum -y install postfix |
发送并设置邮件
标准邮件需要三个头部信息
- From:发件人
- To:收件人
- Subject:主题
SMTP
概念
- SMTP(Simple Mail Transfer Protocol) 即简单邮件传输协议,使用 TCP 协议 25 端口
- 它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式
- python 的 smtplib 提供了一种很方便的途径发送电子邮件。它对 smtp 协议进行了简单的封装
SMTP对象
- Python 发送邮件,第一步是创建 SMTP 对象
- 创建 SMTP 对象也可以不给定参数,之后再通过对象的其他方法进行绑定
sendmail 方法
- Python SMTP 对象使用 sendmail 方法发送邮件
- sendmail 方法三个必须的参数有:
- 收件人
- 发件人
- 消息主体 msg 是一个字符串,表示邮件
- 将准备好的邮件发送
案例:通过本机发送邮件
准备工作
- 创建 bob 和 alice 账号
- 编写发送邮件程序,发件人为 root,收件人是本机的 bob *和 *alice 账号
1 | [root@localhost xxx]# useradd bob # 创建接收邮件的用户bob和alice |
代码编写
1 | # local_mail.py,使用本机的root用户,发送邮件给bob和alice用户 |
paramiko 模块应用
功能
实现对 SSH 的相关功能,例如:要对服务器进行远程管理的操作,就需要使用此模块
安装
1 | [root@localhost xxx]# pip3 install paramiko # 使用pip,安装paramiko模块 |
基本使用
常用方法解释说明
- SSHClient:创建用于连接 ssh 服务器的实例
- paramiko.AutoAddPolicy:设置自动添加主机密钥
- ssh.connect:连接ssh服务器
- ssh.exec_command:在ssh 服务器上执行指定命令
案例:实现ssh远程连接服务器
1 | [root@localhost xxx]# python3 |
练习:paramiko 实例
需求:
- 创建 SSHClient 实例
- 设置添加主机密钥策略
- 连接 ssh 服务器
- 执行指定命令
- 在 shell 命令行中接收用于连接远程服务器的密码以及在远程主机上执行的命令
1 | # 创建新的python文件rcmd.py ,使用paramiko, 实现ssh远程连接服务器 |
PyMySQL
准备数据库
- 安装 mariadb-server
- 启动服务
- 创建名为 tedu1 的数据库【utf8】
1 | [root@localhost ~]# yum -y install gcc |
PyMySQL 模块应用
连接数据库
创建连接是访问数据库的第一步
1 | import pymysql |
游标
- 游标(cursor)就是游动的标识
- 通俗的说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行
1 | cur = conn.cursor() # 创建游标【对数据库进行增删改查】 |
创建表
1 | # 建立部门表,员工表,工资表 |
插入数据
对数据库表做修改操作,必须要 commit
1 | #向部门表中插入数据 |
查询数据
可以取出表中一条、多条或全部记录
1 | sql4 = "SELECT * FROM departments" |
修改数据
通过 update 修改某一字段的值
1 | # 更新部门表【departments】中的数据 |
删除记录
通过 delete 删除记录
1 | #删除部门表【departments】中的id为6的数据 |
练习 :员工表 (EMPLOYEE) 相关操作
需求:
- 员工表有 FIRST_NAME VARCHAR(20),LAST_NAME VARCHAR(20),AGE INT,SEX VARCHAR(1),INCOME FLOAT字段
- 使用 PyMySQL 创建该表
- 使用 PyMySQL 添加以下三条数据
- ‘Mac’, ‘A’, 20, ‘M’, 20000
- ‘Tom’, ‘B’, 20, ‘F’, 30000
- ‘Bob’, ‘C’, 20, ‘M’, 40000
- 使用 PyMySQL 查询所有用户信息,并打印结果
- 将 FIRST_NAME 为 Mac 的用户工资改成 10000
- 删除 FIRST_NAME 为 Tom 的用户信息
1 | import pymysql |