首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 连接数据源与邮件功能(九)

一、概述

连接数据源和邮件发送和邮件接收也是在项目中很常见的功能,数据量小的话,可以存在MySQL、Redis、PostgreSQL 等等,数据量大的话,就可以考虑大型分布式高可用存储数据库系统例如:Hadoop、StarRocks、ClickHouse等等。邮件发送一般用于通知,像告警通知,下单通知,支付通知等等。

二、Python 连接数据源

1)Python MySQL 基础操作

Python是一种流行的编程语言,而MySQL是一种常用的关系型数据库管理系统。Python中有许多不同的MySQL库可供使用,其中一些最常用的库包括:

——这是MySQL官方提供的Python库,可以在Python 2.7和Python 3.x中使用。它提供了与MySQL数据库的连接和交互的API,并支持多种操作系统。

——这是一个纯Python实现的MySQL客户端库,可以在Python 2.7和Python 3.x中使用。它提供了一种简单而直接的方法来连接到MySQL服务器,并执行查询和其他操作。

1、部署MySQL

MySQL的介绍和部署可以参考我以下几篇文章:

2、MySQL Connector 库

Python 通过 MySQL Connector 模块提供了访问 MySQL 数据库的能力,可以通过该模块使用一系列的函数来进行数据库操作。

下面是一些常用的 Python MySQL 函数:

:用于连接 MySQL 数据库,返回一个连接对象。

:用于创建一个游标对象,该对象用于执行查询语句和读取数据。

:用于执行 SQL 语句,返回受影响的行数。

:用于获取结果集中的下一行数据。

:用于获取结果集中的所有数据。

:用于提交事务。

:用于回滚事务。

:用于关闭连接。

以下是使用MySQL Connector进行连接和增删改查的演示示例。

【1】安装 mysql-connector-python 库

首先,需要安装库:

【2】连接 MySQL

要进行数据库操作,需要先连接MySQL数据库。连接MySQL数据库的代码如下:

在连接数据库时需要替换、、和为相应的值。

【3】增加数据

可以使用  函数执行  语句,将数据插入到数据库中。以下是一个示例:

在这个例子中,将一条记录插入到名为"customers"的表中。通过将数据作为元组传递给execute()方法,将值插入到占位符中。最后,需要使用方法提交更改。

【4】查询数据

可以使用  函数执行  语句,查询数据库中的数据。以下是一个示例:

在这个例子中,从名为"customers"的表中选择所有记录,并使用方法将结果存储在变量myresult中。最后,使用循环打印每个记录。

【5】更新数据

可以使用  函数执行  语句,更新数据库中的数据。以下是一个示例:

在这个例子中,将名为"customers"的表中地址为"Highway 21"的记录的地址更新为"Canyon 123"。

【6】删除数据

可以使用  函数执行  语句,删除数据库中的数据。以下是一个示例:

2、PyMySQL 库

Python  是一个纯 Python 实现的 MySQL 客户端库,使用 PyMySQL 可以连接 MySQL 数据库并执行数据库操作。下面介绍一些 PyMySQL 常用的函数:

:用于连接 MySQL 数据库,返回一个连接对象。

:用于创建一个游标对象,该对象用于执行查询语句和读取数据。

:用于执行 SQL 语句,返回受影响的行数。

:用于执行多个 SQL 语句,返回受影响的行数。

:用于获取结果集中的下一行数据。

:用于获取结果集中的所有数据。

:用于获取结果集中指定数量的数据。

:用于提交事务。

:用于回滚事务。

:用于关闭连接。

【1】安装 PyMySQL 库

首先,需要安装库:

【2】连接 MySQL

要进行数据库操作,需要先连接MySQL数据库。连接MySQL数据库的代码如下:

接下来,连接到MySQL服务器并执行查询:

在上面的代码中,需要将、、、和替换为实际的数据库连接信息。

【3】增加数据

可以使用  函数执行 INSERT INTO 语句,将数据插入到数据库中。以下是一个示例:

【4】查询数据

可以使用  函数执行  语句,查询数据库中的数据。以下是一个示例:

【5】更新数据

可以使用  函数执行  语句,更新数据库中的数据。以下是一个示例:

【6】更新数据

可以使用  函数执行  语句,删除数据库中的数据。以下是一个示例:

上述代码演示了如何连接到 MySQL 数据库、执行插入、更新、删除和查询操作以及关闭连接。在实际应用中,还可以使用其他函数来执行复杂的操作,如连接池、事务管理等。

2)Python Redis 基础操作

Redis 是一种基于内存的数据结构存储系统,它可以用作数据库、缓存和消息代理。Python 是一种流行的编程语言,提供了一个 Redis 客户端库,可以轻松地与 Redis 交互。下面是一些 Python Redis 基本操作的示例。

1、部署 Redis

Redis 的介绍和部署可以参考我以下几篇文章:

Redis原理介绍

Redis原理介绍与环境部署(主从模式、哨兵模式、集群模式)

【云原生】Redis on k8s 编排部署讲解与实战操作

2、Python Redis 基本操作【1】安装 Redis 客户端库

要在 Python 中使用 Redis,需要安装 Redis 客户端库。可以使用 pip 工具安装:

【2】连接 Redis

在 Python 中连接 Redis,需要使用 Redis 客户端库中的 Redis 类。可以使用以下代码连接到 Redis:

【3】设置键值对

可以使用  方法设置键值对:

也可以使用  方法一次设置多个键值对:

【4】获取键值对

可以使用  方法获取单个键的值:

也可以使用  方法一次获取多个键的值:

【5】删除键

可以使用  方法删除一个键:

也可以使用  方法删除多个键:

【6】判断键是否存在

可以使用  方法判断一个键是否存在:

【7】设置过期时间

可以使用  方法设置一个键的过期时间(以秒为单位):

也可以使用  方法设置一个键的过期时间(以 Unix 时间戳为单位):

【8】自增和自减

可以使用  方法对一个键进行自增操作:

也可以使用  方法对一个键进行自减操作:

以上是一些 Python Redis 的基本操作示例,可以根据具体需要进行适当修改和调整。

三、邮件功能

Python 中可以使用标准库中的  和  模块来发送和接收电子邮件。

1)开通邮箱服务功能

1、邮件协议介绍

SMTP、POP3和IMAP都是电子邮件协议,用于在计算机之间传递和接收电子邮件。

是用于发送电子邮件的协议。它定义了电子邮件如何通过互联网发送,包括如何连接到邮件服务器、如何验证身份、如何传输邮件、如何处理错误等。

是用于接收电子邮件的协议。它定义了电子邮件如何从邮件服务器下载到本地计算机上的电子邮件客户端。POP3协议允许用户下载所有的邮件,但是在本地计算机上只保留一份副本。

也是用于接收电子邮件的协议。它定义了电子邮件如何从邮件服务器下载到本地计算机上的电子邮件客户端。IMAP协议允许用户对邮件进行管理和组织,例如在本地计算机上创建文件夹来存储邮件,而不是在邮件服务器上。这使得IMAP更适合那些需要在多个设备上使用电子邮件的用户。

总之,SMTP、POP3和IMAP是三种不同的协议,每个协议都有其独特的作用,使得电子邮件的发送和接收变得更加便捷和高效。简单地说,SMTP管,POP3/IMAP管

POP(Post Office Protocol)和 IMAP(Internet Message Access Protocol)都是电子邮件客户端和邮件服务器之间的协议,但是它们在处理电子邮件的方式上有一些重要的区别:

工作方式:POP将邮件从邮件服务器下载到本地计算机上的邮件客户端,然后将邮件从邮件服务器中删除,这意味着用户只能在本地计算机上访问邮件的一份副本;而IMAP将邮件保留在邮件服务器上,只有在用户请求访问邮件时才会下载邮件到本地计算机上的邮件客户端。

多设备支持:由于POP只下载邮件的一份副本到本地计算机上,因此如果用户使用多个设备(如电脑、平板电脑、智能手机等)来访问邮件,则每个设备上的邮件客户端都会显示不同的邮件状态。而IMAP协议允许用户在多个设备上访问邮件,因为邮件始终保留在邮件服务器上。

邮件管理:IMAP允许用户在邮件服务器上对邮件进行管理,例如创建、删除和重命名文件夹,标记邮件已读或未读等。这使得用户可以轻松地在多个设备之间同步邮件状态。而POP协议只是简单地下载邮件并删除它们,不能像IMAP那样管理邮件。

带宽:由于IMAP只在用户需要访问邮件时才下载邮件,因此它可以节省带宽。而POP在每次下载邮件时都会占用带宽,因为它要下载所有邮件的一份副本。

总之,IMAP是更先进的邮件协议,可以提供更多的功能和灵活性,特别是对于那些需要在多个设备上访问邮件的用户。而POP适合那些只使用单个设备访问邮件的用户。

2、QQ邮箱开启邮件服务设置

3、163邮箱开启邮件服务设置

最后整理一下邮箱服务器:

2)Python 邮件示例讲解

以下是一个简单的 Python 脚本,演示了如何使用这两个模块来发送电子邮件。

发送邮件实例:

接收邮件示例:

这里的示例代码仅仅是一个简单的示例,可以根据具体的需要来修改和扩展。在使用示例时,注意修改上面的连接信息哦。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230505A000QR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券