• python学习之模块导入,操作邮件,redis


    python基础学习06

    模块导入

      导入模块的顺序

        1.先从当前目录下找

        2.当前目录下找不到,再从环境变量中找,如果在同时在当前目录和环境变量中建立相同的py文件,优先使用当前目录下的

      导入模块的实质

        导入的python文件运行一次,并放到内存中,之后可以调用里面的变量或者方法

        导入的python文件导入过一次后如果运行时遇到相同的文件会过滤掉,如果强行要再加载一次可以使用如下方法

    import os
    import importlib
    importlib.reload(os)

      py环境变量  环境变量不是系统的环境变量而是python自带的环境变量,存在python目录中

        查找环境变量  

          1.

            import sys

            print(sys.path)  #查看python的环境变量路径,py文件可以放在一些目录下就导入到环境变量中了

          2.

            pycharm→project→external library中也可以找到环境变量目录

        添加环境变量 

          1. 

            import sys      

            sys.path.append('xxxx路径文件')  #对于一些不经常使用的py文件,可以临时添加环境变量,但是要在开头定义,再使用

            sys.path.insert(0,'xxxx路径文件')  #指定要py文件优先查找

          2.

            pycharm→project→文件右键mark Directory as→sources root

      导入模块的使用

        import longsize as e  as相当于模块longsize可以用e来替换,只局限于在此py文件中调用

        from xxx import xx1,xx2,xx3...  导入xxx中从xx1,xx2,xx3

        from xxx.name import xx1  导入xxx中的name方法从xx1

        from xxx import *      导入xxx中的所有方法,但是*不实用  

    python操作邮件

      安装

        pip install yagmail

        安装yagmail模块

      操作

    import yagmail
    #首先要开启POP3/SMTP服务
    MAIL_INFO = {
        'user':'70xxxxxx@qq.com', #发送者邮箱
        'password':'r******h', #发送者密码,如果是qq是授权码
        'host':'smtp.qq.com',  #host为qq第三方服务器
        "port": "465",
        #'smtp_ssl':False#发件箱是qq邮箱的话,改成True 好像现在用不了了
    }
    
    emailList=["2xxxx94@qq.com"]
    email = yagmail.SMTP(**MAIL_INFO)
    email.send(to=emailList,subject="My name is sdf",contents="Today is 20180605",cc="xxxx@qq.com",attachments='m2.py')
             #to=收件人列表,subject=邮件标题,contents=邮件正文,cc=邮件抄送人,attachments=附件

    python操作redis    redis是非关系型数据库,数据存在内存中

    import redis
    ip='ip'
    pwd= 'pwd'
    r= redis.Redis(host=ip,password=pwd,port=6379,db=1) #固定格式
    res= r.get('key')    #获取key中value
    b= res.decode()     #把二进制转成字符串
    r.flushdb()     #清除db所有数据key
    r.set('a','bbb',60)    #新增和修改key和value,TTL:计时器60秒后清除key
    r.set('cc:b','bbb',60)   #冒号前面的是文件夹名
    r.keys()        #获取所有的key
    r.keys('session*')  #支持模糊匹配和过滤
    r.delete('a')   #删除指定的key
    r.ttl('key名')   #打印key中的ttl剩余时间
    r.expire('woshirainbol', '400') #为key设置ttl时间
    r.mset(key1='value1', key2='value2',。。。。。) #批量增加
    r.mget(key1='value1', key2='value2',。。。。。) #批量获取

    #哈希类型 两层字典 r.hset('bigkey','key','value') #在bigkey中嵌套key和value r.hget('bigkey','key') #指定在bigkey中获取key中的值 r.hdel('bigkey','key') #删除指定的key res = r.hgetall('bigkey') #指定获取bigkey中的所有key值 #获取上面二进制所有数据转成正常字典格式 new ={} for k,v in res.item(): new[k.decode()] = v.decode() print(new) #或者在最上方r中加入参数decode_responses=True,此参数不需要decode



    http://www.cnblogs.com/melonjiang/p/5342505.html  #大佬笔记
    https://www.cnblogs.com/RainBol/p/9522727.html  #redis学习笔记
    #redis连接池
    
    import redis
    
    REDIS_INFO = {
        'host': '127.0.0.1',
        'post': 6379,
        'db': 0,
        'password': '',
        'decode_responses': True
    }
    
    pool = redis.ConnectionPool(**REDIS_INFO)
    res = redis.Redis(connection_pool=pool)
    res.set('1',1,ex=2)
    print(res.get('1'))
    # django redis
    
    #安装 pip install django-redis
    
    #配置文件 在django settings.py中配置
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/1",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "CONNECTION_POOL_KWARGS": {
                    "max_connections": 1000,
                    "encoding": "utf-8",
    
                },
                "PASSWORD": ""
            }
        }
    }
    
    from django_redis import get_redis_connection
    conn = get_redis_connection("default")
    conn.set('1','2',ex=10)
    print(conn.get('1'))

    版权声明:本文原创发表于 博客园,作者为 RainBol 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

  • 相关阅读:
    [转]Request Control Introduce
    [转]How to set the control word of FPU in delphi
    Delphi消息分发机制
    Delphi Handle Exception
    python 简单图像处理(13) 二值图腐蚀和膨胀,开运算、闭运算
    如何在Linux下实现50万并发
    转载 google hack
    Linux 网卡如何支持TSO GSO指南
    收藏:网口协商
    AVR地址空间
  • 原文地址:https://www.cnblogs.com/RainBol/p/9787885.html
Copyright © 2020-2023  润新知