zoukankan      html  css  js  c++  java
  • 第三方模块(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)
    
    
    
    
    
    
  • 相关阅读:
    文档浏览类的网站该如何设计?
    如何将动态生成Word文件
    Word 2007 文档结构图混乱
    Spring 配置 Spring JPA 发生错误的解决方法
    今天开始着手原来Office系统的重构
    Jetty入门
    推荐一个C语言学习教程
    博客园的第一天
    我与solr(一)--solr的配置与安装
    XML解析工具类
  • 原文地址:https://www.cnblogs.com/zhengp/p/14931512.html
Copyright © 2011-2022 走看看