python 关系型数据库链接使用--mysql

import pymysql    # 引用mysql模块
# 创建连接,指定数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集
coon = pymysql.connect(host='118.24.3.40',user='jxz',password='123456',
port=3306,db='jxz',charset='utf8',autocommit=True) cur = coon.cursor() #建立游标,
# 上面的操作,获取到的返回结果都是元组,如果想获取到的结果是一个字典类型的话,可以使用下面这样的操作
# cursor = coon.cursor(cursor=pymysql.cursors.DictCursor) #需要指定游标的类型,字典类型 # cur.execute('select * from nhy;') #执行sql语句,它只是帮你执行sql语句,不会给你返回数据
sql = 'insert into nhy (name,pwd) value ("xiaobai","1234567");'
cur.execute(sql)
# cur.execute('select * from nhy where name="xiaobai";') coon.commit() #修改,删除,增加数据,需要commit;不然数据库没有保存。也可以在创建链接时加上“autocommit = Ture”,表示cur.execute(sql)执行完sql后自动提交
print(cur.fetchall()) #获取查询到的所有结果
# print(cur.fetchone()) #只获取一条
# print(cur.fetchmany(2)) #指定获取几条 # 获取最新自增ID
    new_id = cursor.lastrowid
cur.close()#游标关闭
coon.close()#连接关闭 python redis数据库的str和hash import redis
    r = redis.Redis(host='127.0.0.1',port=6379,db=0)#指定连接redis的端口和ip以及哪个数据库
 #  string类型  存储形式 (key:value,key2:value2)
 
 r.set('name', 'value')#set string类型的值
    r.setnx('name2', 'value')#设置的name的值,如果name不存在的时候才会设置
    r.setex('name3', 'value', 3)#设置的name的值,和超时时间,过了时间key就会自动失效
    r.mset(k1='v1',k2='v2')#批量设置值
    r.get('name')#获取值
    print(r.mget('k1','k2'))#批量获取key
    
    r.delete('name')#删除值
    r.delete('k1','k2')#批量删除
  

#其他的方法
# print(r.keys('*info')) #获取到所有的key,‘*info’以info结尾的所有key
# print(r.exists('dashu_name')) #判断这个key是否存在
# r.flushdb() #可以清空当前数据库里面所有的key
# r.expire('session_crm',600) #指定key的失效时间
# print(r.ttl('session_crm')) #用来这个key的失效时间
# print(r.type('session_crm')) #看key的类型
 
    #======下面是操作哈希类型的   存储形式(name:{key:value,key2:value2,...})
 
    r.hset('hname', 'key', 'value')#set 哈希类型的值
    r.hset('hname', 'key1', 'value2')#set 哈希类型的值
    r.hsetnx('hname','key2','value23')#给name为hname设置key和value,和上面的不同的是key不存在的时候
    #才会set
    r.hmset('hname',{'k1':'v1','k2':'v2'})#批量设置哈希类型的key和value
    r.hget('name', 'key')#获取哈希类型的值
    print(r.hgetall('hname'))#获取这个name里所有的key和value
    r.hdel('hname','key')#删除哈希类型的name里面指定的值
    print(r.keys())#获取所有的key

res = r.hgetall('session_crm')   #获取到hash类型里面所有的数据
a = {}
for k,v in res.items():
a[k.decode()] = v.decode()
print(a)
redis 获取的数据都是编码型的,所有需要的时候需要v.decode()将编码转为字符串

发送邮件

import yagmail
# 邮箱地址
user_name='heijame@163.com'
# 登录邮箱开启POP3/SMTP服务,设置邮箱的授权码,qq自动生成
passwd='qwe123'
# 若是QQ邮箱加上参数stmp_ssl=Ture;yagmail.SMTP(user=user_name, password=passwd, host='smtp.163.com',stmp_ssl=Ture)
mail = yagmail.SMTP(user=user_name, password=passwd, host='smtp.163.com')
# ‘to’:发送给某人,单引号包裹邮箱地址,也可以多人['23432411@qq.com','989787765@qq.com'];‘cc’抄送某人;‘subject’主题;‘contents’正文;attachment附件地址,文件路劲前加r
# r'C:\app\www\123.txt'
mail.send(to='511402865@qq.com', subject='导出excel', contents='zuoye', attachments=r'D:\Documents\coding\spz-python\day6\student_table.xls')



python 数据库mysql、redis及发送邮件的更多相关文章

  1. 实战接口开发:python + flask + mysql + redis(根据反馈,持续细化更新。。。)

    前言 自动化已经成为测试的必备技能之一了,所以,很多想跳槽的测试朋友都在自学,特别是最实用的接口自动化, 但是很多人因为没有可以练手的项目而苦恼,最终导致缺乏实战经验,其实,完全可以自己开发个简单项目 ...

  2. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  3. python连接MySQL/redis/mongoDB数据库的简单整理

    python连接mysql 用python操作mysql,你必须知道pymysql 代码示意: import pymysql conn = pymysql.connect(host='127.0.0. ...

  4. Python操作MySQL+Redis+MongoDB

    1-1 python操作三大主流数据库导学篇 1-2 数据库简介 1-3 MySQL简介 2-1 MySQL安装及配置 2-2 MySQL图形化管理工具 2-3 SQL语法基础-创建并使用数据库 2- ...

  5. python数据库(mysql)操作

    一.软件环境 python环境默认安装了sqlite3,如果需要使用sqlite3我们直接可以在python代码模块的顶部使用import sqlite3来导入该模块.本篇文章我是记录了python操 ...

  6. python操作mysql,redis

    import pymysqlip ="127.0.0.1"#数据库地址user = 'username'#数据库用户名password="pwd"#数据库密码d ...

  7. 饮冰三年-人工智能-Python-21 Python数据库MySql

    一:下载与安装 1:下载地址:https://dev.mysql.com/downloads/mysql/ 2:安装MySql 打开下载文件解压到指定文件目录.(我这里解压目录为D:\MySql\my ...

  8. python数据库-MySQL数据库高级查询操作(51)

    一.什么是关系? 1.分析:有这么一组数据关于学生的数据 学号.姓名.年龄.住址.成绩.学科.学科(语文.数学.英语) 我们应该怎么去设计储存这些数据呢? 2.先考虑第一范式:列不可在拆分原则 这里面 ...

  9. python数据库MySQL之视图,触发器,事务,存储过程,函数

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

随机推荐

  1. Unable to compile class for JSP 的可能原因

    浏览器访问web jsp文件,导致500-Unable to compile class for JSP 的原因. 原因一:查看网上的方法,说很可能的原因是tomcat版本比JDK的版本要低导致的.所 ...

  2. Hive:map字段存储和取用 ( str_to_map函数 )

    str_to_map(字符串参数, 分隔符1, 分隔符2) 使用两个分隔符将文本拆分为键值对. 分隔符1将文本分成K-V对,分隔符2分割每个K-V对.对于分隔符1默认分隔符是 ',',对于分隔符2默认 ...

  3. 一些常见的Java面试题 & 面试感悟

    < 前言 > 近期在面试,深感这个行业的浮躁,一些菜不辣基的弱鸡开出的工资待遇要求,超过了我.不知道他们是怎么拿到那么高的工资的,难道是他在公司有亲戚朋友吗?有后台吗?是行业热钱真的过多了 ...

  4. Mac端StartUML的安装和破解

    **本人安装的是StarUML-3.0.1版本** 一.下载与安装 1. 从官方网站下载,网址:http://staruml.io/ 2. dmg文件下载完成后,双击安装. 二.破解 1. 安装npm ...

  5. python yield 与 yield from转

    python yield 与 yield from转 https://blog.csdn.net/chenbin520/article/details/78111399?locationNum=7&a ...

  6. 在虚拟机上运行zookeeper的过程中,xshell连接不上虚拟机

    之后网上的各种方法,都没用 如图,就是第一个网卡配置文件.下面又具体的详解.网上有说让把Onboot改成yes,而我的本来就是yes,就没该, 之后我对比了我原来电脑你虚拟机的网卡配置文件,我发现on ...

  7. win10以管理员身份运行cmd方法

    win10以管理员身份运行cmd方法 win8win10以管理员身份运行cmd方法1.直接到 C:\Windows\System32 下面找cmd.exe 右键以管理员方式打开就可以了 2.按WIN+ ...

  8. dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js` vue启动报错解决

    这是因为webpack-dev-server版本和vue版本不一样,需要将webpack-dev-server卸载了,安装对应版本 查看vue版本是 vue -V 注意:V是大写 卸载npm unin ...

  9. Alpha冲刺

    第一天 日期:2018/6/16 1.今日完成任务情况以及遇到的问题 张天旭:根据系统的需求,完成数据库的设计 周甜甜:完成系统后台登录界面的设计及登录功能的实现 李蕾:完成系统后台首页的设计 张海鑫 ...

  10. Java8自定义函数式编程接口和便捷的引用类的构造器及方法

    什么是函数编程接口? 约束:抽象方法有且只有一个,即不能有多个抽象方法,在接口中覆写Object类中的public方法(如equal),不算是函数式接口的方法. 被@FunctionalInterfa ...