python redis 订阅发布_结合 Python、MySQL、Redis 发布订阅功能,实现 Email 自动发送...

本文介绍了如何在Centos7环境下搭建Python3.6开发环境,并使用pip安装相关库如SQLAlchemy、MySQL-connector等。通过SQLAlchemy创建数据模型,结合Redis的发布订阅功能,实现Email的自动发送。文章还提供了开机自动启动脚本的配置方法,以及可能遇到的服务器端口问题。具体代码实现可参考GitHub上的源码,源码中包含详细注释。
摘要由CSDN通过智能技术生成

Contrast

结合 Python、MySQL、Redis 发布订阅功能,实现 Email 自动发送 HTML 模版邮件.

1. Centos7 上搭建 Python3.6 开发环境

使用 pip 安装以下库

pip install sqlacodegen

pip install mysql-connector==2.1.4

pip install sqlalchemy

pip install redis

pip install requests

pip install setuptools

pip install pymysql

查看已安装的库

pip list

** pip 升级包**

pip install --upgrade PackageName

2. 查看Python安装路径

Python交互模式下查看Python安装路径

>>> import sys

>>> path = sys.executable

>>> print(path)

命令行模式下查看Python安装路径

which python

3. 使用SQLAlchemy创建数据模型

pymysql

sqlacodegen mysql+pymysql://root:653155073@192.168.0.107:3306/pythonemail > models.py

也可以导出某一张表的数据模型

sqlacodegen mysql+pymysql://root:653155073@192.168.0.107:3306/pyemail --tables test_user > models.py

sqlalchemy

sqlacodegen mysql+mysqlconnector://root:653155073@192.168.0.107:3306/pythonemail > models.py

也可以导出某一张表的数据模型

sqlacodegen mysql+mysqlconnector://root:653155073@192.168.0.107:3306/pyemail --tables test_user>models.py

4. 开机自动启动脚本pythonemail

#!/bin/sh

#chkconfig: 23456 80 90

#description:auto_run

lock="subscription.py"

start(){

echo "service start...."

su root -c "/usr/local/bin/python /usr/local/apache2/htdocs/python_email/Subscription/subscription.py &"

}

stop(){

echo "service stop...." pkill -f $lock

}

status(){

if [ -e $lock ];then

echo "$0 service start"

else

echo "$0 service stop"

fi

}

restart(){

stop

start

}

case "$1" in

"start")

start

;;

"stop")

stop

;;

"status")

status

;;

"restart")

restart

;;

*)

echo "$0 start|stop|status|restart"

;;

esac

把脚本 pythonemail 放入 /etc/rc.d/init.d 文件夹下

脚本可以先执行一下看看报不报错

cd /etc/rc.d/init.d

chmod +x pythonemail

./pythonemail start

赋予脚本权限

cd /etc/rc.d/init.d

chmod +x pythonemail

chkconfig --add pythonemail

chkconfig --list pythonemail

这样脚本开机就会自动运行

也可以后台静默执行,每一次重新开机启动需要重新执行命令

cd /etc/rc.d/init.d

chmod +x pythonemail

nohup ./pythonemail start &

回车

exit

不能直接关闭shell窗口,不然不会在后台静默执行,一定要exit退出登录后,再关闭shell窗口

Tip:

CentOS重启命令:reboot

如果邮件发送不出去也有可能是服务器端口的问题,需要在服务器安全组中打开对应的端口.

这里我并不会讲具体的实现,只讲前期准备,具体的代码实现参考 Github 上的源码

结合 Python、MySQL、Redis 发布订阅功能,实现 Email 自动发送,源码中有详细的注释说明,理解起来不难,欢迎大家提意见.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值