python(13)---发邮件写日志操作redis数据库

Posted 冒泡泡de可乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python(13)---发邮件写日志操作redis数据库相关的知识,希望对你有一定的参考价值。

一、写邮件

import yagmail

user = [email protected]
password = rtcxbuejmqrdgjcd  #不是qq密码,是邮件授权码 在qq邮箱,设置--账户--开启POP3/SMTP服务,获得授权码

m=yagmail.SMTP(host=smtp.qq.com,user=user,password=password)  #host-- 163邮箱用 tp.163.com

m.send(to=[[email protected],xxx.qq.com],cc=[xx.qq.com,xxx.qq.com],
       subject=明天不上课,contents=明天去体检,attachments=学生.xls,
       smtp_ssl=True)

# to 收件人,发送给多个人时用list
#cc  抄送给谁,多个人时用list
#attachments 附件  用官方yagmail模块,附件名为中文是会显示乱码;改用nn改过的yagmail模块
# smtp_ssl=True  QQ邮箱需加上,163邮箱不用

二、写日志

日志级别:
error
warning
info
debug  默认
级别越低,打印的信息越多 

import nnlog  #导入的是nn自己写的log模块

log =nnlog.Logger(my.log,level=info,backCount=3,when=S)
#level--打印日志的级别  如果为error级别,比它级别低的日志都不会打印 
#backCount--保存日志的最大个数,超过自动删除前面的
#when--产生日志的频率  D-每天  M-每分  S-每秒

log.info(lihui登录。。。)
log.error(数据库连接失败)

三、操作redis数据库

先安装redis数据库

 

# 关系型数据库:oracle、mysql...
      #有表、有sql
      #数据放在磁盘上

# 非关系型数据库  nosql:redis,mongodb,memcache
        # 没有表
        # 没有sql语句
        # k-v
        # 每秒支持30w次读写
        # 数据全部都是放在内存中的,性能高 (电脑一重启就没了)

import redis

ip =118.XX.3.40
password=HK139bckk

r= redis.Redis(host=ip,password=password,port=6379,db=3,decode_responses=True)
#默认端口 6379
#db--选择哪个数据库
#加了decode_responses=True ,返回的二进制数据直接decode,下面就不用自己再写decode转换了

r.set(lh2,nihaoya) #新增和修改都用set

res =r.get(lh2)     #获取数据
print(res)    #b‘nihaoya‘  没有加 decode_responses=True 时
print(res.decode())  #‘nihaoya‘  decode() 二进制转成字符串      encode() 字符串转二进制

r.delete(lh2) #删除
r.flushdb() #删除这个数据库里面所有的key

r.set(lh123,dudududu,20)  #设置有效时间为20s

res=r.get(session:lh) #数据库中文件夹分类  session即为文件夹名
print(res.decode())

print(r.keys()) #获取所有的key
print(r.keys(session*)) #过滤以session开头的所有的key

# res=r.get(‘mcx‘)
# print(res.decode())

#redis中的哈希类型  就是一个两层字典
#哈希类型 的方法和其他数据类型的方法不一样
session={
    "lh":{age:27,sex:nv},
    "lh2":{age:28,sex:nan}
}

r.hset(jnz_stus,lw,hehehe)  #添加hash类型的值:jnz_stus--外层大字典的key; lw--外层字典小key; hehehe--内层字典value
res =r.hget(jnz_stus,mcx)  #获取里面小key的值
print(res.decode())

r.delete(jnz_stus) #删除大key jnz_stus
r.hdel(jnz_stus,lw) #删除指定的小key

res = r.hgetall(jnz_stus) #获取到大key里面的所有数据
res_new={}
for key ,value in res.items():  #没有加decode_responses=True时,需要手动循环decode
    res_new[key.decode()]=value.decode()
print(res)

 

以上是关于python(13)---发邮件写日志操作redis数据库的主要内容,如果未能解决你的问题,请参考以下文章

DAY6 - os补充操作,发邮件,数据库操作,写excel,加密操作

对 loguru 日志模块的错误日志自动发邮件

python对邮件的常用操作收邮件发邮件

celery django 定时发邮件

python自动发邮件

zabbix3.0.4发邮件小坑一个