第三方模块(2)

redis模块

# redis是非关系型数据库,nosql型数据库
# 数据全部存在内存里,读取比较快,每秒钟最大支持10W的读写
# Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

import redis

r = redis.Redis(host="118.24.3.40", password="HK139bc&*", port=6379, db=4,decode_responses=True)

#处理字符串类型 string k-v {"name":111}
# r.set('zhengpei','123456') #存值,修改值
# r.set('zhengpei','123456',60) #60表示失效时间为60秒;如果不传则永久生效,redis重启才失效,ttl为-1代表永久生效
# print(r.get('zhengpei'))#取值
# r.delete('zhengpei')#删值

# 通用基本操作
# print(r.keys()) #获取所有的key值
# print(r.keys('*new*')) #获取某些key值
# print(r.exists('zhengpei')) #key是否存在,0表示不存在,1表示存在
# print(r.type('zhengpei')) #输出key的类型
# print(r.expire('zhengpei', 60)) #设置key的失效时间
# print(r.ttl('zhengpei')) #获取key的失效时间
# r.flushdb()#清空当前数据库
# r.flushall() #清空所有数据库

#处理hash类型 hash 大字典 {"student":{"xiaohei":"{'id':1,'age':18}","xiaobai":"{'id':2,'age':19}"}}
# r.hset('zhengpei1','xiaoqi','{"age":2.5}') #存值
# r.hset('zhengpei1','dabai','2.5') #存值
# d={'xiaobai':23}
# r.hmset('zhengpei1',d) #最新版本的redis模块对hmset支持不好
# print(r.hget('zhengpei1', 'xiaoqi')) #获取指定的小key
# print(r.hget('zhengpei1', 'dabai')) #获取指定的小key
# print(r.hgetall('zhengpei1')) #获取指定大key里的所有的值
# r.hdel('zhengpei1','xiaoqi') #删除指定的小key
# r.delete('zhengpei1') #删除指定的大key
# print(r.hexists('zhengpei1', 'xiaoqi'))#判断在小key是否存在

#list类型
r.lpush("black_list",*l) #左存值
# r.lpush("black_list","2")
# r.rpush("black_list","3")#右存值
# print(r.lrange("black_list",0,1)) #取值
# r.lpop("black_list") #从左边删
# r.rpop("black_list")#从右边删
# r.lset("black_list",0,"hhhh")#指定位置修改
# print(r.llen("black_list")) #取这个list的长度
# print(r.ltrim("black_list",0,0)) #删除列表里面的数据,除了你指定的范围
# print(r.lrem("black_list",2,"hhh")) #删除指定的元素

# # 如果链接redis的时候没有加decode_responses=True,将hgetall返回结果字典中的d全部去掉生成一个新的字典
# ret=r.hgetall('zhengpei1')
# new_ret = {}
# for k,v in ret.items():
# k = k.decode()
# v = v.decode()
# new_ret[k] = v
# print(new_ret)


#处理list类型
# l = ['xiaoqi', 'dabai', 'xiaobai']
# r.lpush("zppblack_list",*l) #左存值,l存值完成后顺序是:xiaobai,dabai,xiaoqi
# r.lpush("zppblack_list","2") #坐存值,存在最前面
# r.rpush("zppblack_list","3")#右存值,存在最后面
# print(r.lrange("zppblack_list",0,1)) #取值
# r.lpop("zppblack_list") #从左边删
# r.rpop("zppblack_list")#从右边删
# r.lset("zppblack_list",0,"hhhh")#指定位置修改
# print(r.llen("zppblack_list")) #获取这个list的长度
# print(r.ltrim("zppblack_list",0,0)) #删除列表里面的数据,除了你指定的范围,返回true表示删除成功
# print(r.lrem("zppblack_list",2,"xiaobai")) #删除指定的元素,删除2次,1表示删除成功,如果将2改为0,则表示删除所有的



requests模块
import requests
#1、get请求
#2、post请求
#3、url里面传参
#4、传参是json格式
#5、传参有cookie
#6、传参有header
#7、传参有文件
#8、k-v

#get请求:http://api.nnzhp.cn/api/user/stu_info?stu_name=xiaohei
# url = "http://api.nnzhp.cn/api/user/stu_info"
# data={'stu_name':'郑佩'}
# req = requests.get(url,data)
# # 获取请求的返回结果
# print(req.json()) #输出返回的json格式,返回要是json格式,否则会报错哦
# print(req.text) #输出返回的字符串格式
# print(req.content) #输出返回的bytes格式
# print(req.status_code) #获取返回的状态码
# print(req.cookies) #获取返回的cookies
# print(req.headers) #获取返回的headers


#post请求
# url = "http://api.nnzhp.cn/api/user/login"
# data={'username':'niuhanyang','passwd':'aA123456'}
# # data2 = {"version":1} ????????????????
# # req = requests.post(url,params=data2,data=data) ???????????????
# req = requests.post(url,data)
# print(req.url)


# #post请求,入参是json格式
# url = "http://api.nnzhp.cn/api/user/add_stu"
# data = {
# "name": "郑佩",
# "grade": "88",
# "phone": "13296918746"
# }
# req = requests.post(url,json=data)
# print(req.json())


#传参里有cookies
# url='https://qun.qq.com/cgi-bin/qun_mgr/search_group_members'
# data={
# 'gc': 173415485,
# 'st': 0,
# 'end': 20,
# 'sort': 0,
# 'bkn': 893388711
# }
# cookie={'pgv_pvid': '9947068172', 'pac_uid': '0_5396a0a05b3e0', 'tvfe_boss_uuid': '91bd27b0216224a0', 'RK': 'uWIUk8JbcU', 'ptcz': '872fc4a759236bdeadfb93b515603f2aeaad89d36136e1ea3c6ab5540a717822', '_qpsvr_localtk': '0.6314976695115915', 'uin': 'o1490768397', 'skey': '@CLy2QSEI6', 'p_uin': 'o1490768397', 'pt4_token': '3wx*-gPem0jYFQW*OxjfSSH9xePG-Yj7aaQ96Cwlyf8_', 'p_skey': 'OvDiCPYMfHhjaVPPfgG3loYQ7h-ZHRJXDSRm9SbRgM8_', 'traceid': '70c67d51ad'}
# req=requests.post(url,data,cookies=cookie)
# print(req.json()['mems'])


# #传参里有headers
# url='https://qun.qq.com/cgi-bin/qun_mgr/search_group_members'
# data={
# 'gc': 173415485,
# 'st': 0,
# 'end': 20,
# 'sort': 0,
# 'bkn': 893388711
# }
# #用上面相同的接口,将cookis放到headers里
# header={'cookie':'pgv_pvid=9947068172; pac_uid=0_5396a0a05b3e0; tvfe_boss_uuid=91bd27b0216224a0; RK=uWIUk8JbcU; ptcz=872fc4a759236bdeadfb93b515603f2aeaad89d36136e1ea3c6ab5540a717822; _qpsvr_localtk=0.6314976695115915; uin=o1490768397; skey=@CLy2QSEI6; p_uin=o1490768397; pt4_token=3wx*-gPem0jYFQW*OxjfSSH9xePG-Yj7aaQ96Cwlyf8_; p_skey=OvDiCPYMfHhjaVPPfgG3loYQ7h-ZHRJXDSRm9SbRgM8_; traceid=70c67d51ad'}
# req=requests.post(url,data,headers=header)
# print(req.json()['mems'])


# #传参里有文件
# url = "http://api.nnzhp.cn/api/file/file_upload"
# data = {"file":open("a.xlsx",'rb')} #文件打开方式需要时rb,byte格式
# req = requests.post(url,files=data)
# print(req.json()) #返回字典,如果接口返回的不是json,那会报错


#下载文件
url = "http://aliimg.changba.com/cache/photo/941190975_200_200.jpg"
req = requests.get(url,verify=False) #如果请求https路径抱错,加上verify=False
with open("b.jpg",'wb') as fw: #写入文件,文件打开方式需要是wb,byte格式
fw.write(req.content) #写入需要是byte内容,用req.content
 yamail模块
import yamail
def send_mail(to_list,cc_list=None,subjects=None,content=None,attachments_list=None):
username = "1490768397@qq.com"
password = "xzhmmxdgxbyyhdci" #在QQ邮箱中生成的授权码
host = "smtp.qq.com" #qq
# host = "smtp.163.com" #163
# host = "smtp.126.com" #qq

smtp = yamail.SMTP(host=host,user=username,password=password)
# smtp.send(to="1923502638@qq.com") #单个发送
smtp.send(
to=to_list, # 收件人列表
cc=cc_list, #抄送人列表
subject=subjects, #文件主题
contents=content, #文件内容
attachments=attachments_list #附件
)
if __name__ == '__main__':
to_list=["1923502638@qq.com"]
send_mail(to_list)



posted @ 2021-06-25 16:26  zhengpei  阅读(58)  评论(0编辑  收藏  举报