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. Cache-control使用Cache-control:private学习笔记【转载】

    网页缓存由 HTTP消息头中的Cache-control控制,常见取值有private.no-cache.max-age.must- revalidate等,默认为private 其作用根据不同的重新 ...

  2. opencv人脸检测,旋转处理

    年会签到,拍自己的大头照,有的人可能会拍成横向的,需要旋转,用人脸检测并修正它(图片). 1. 无脑检测步骤为: 1. opencv 读取图片,灰度转换 2. 使用CascadeClassifier( ...

  3. webpy学(ban)习(砖)记录

    参考链接:http://blog.csdn.net/caleng/article/details/5712850 参考代码:http://files.cnblogs.com/files/tacyeh/ ...

  4. 将String类型的json字符串转换成java对象

    1,import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = new ObjectMapper(); Mycl ...

  5. MYSQL1

    一:对查询就行优化 避免全表查询 1.首先考虑在where及order by 列上建立索引 2.where子句   LIKE  '%abc%' 前置%   引擎放弃使用索引而进行全表扫描 3.wher ...

  6. swoole结合支持thinkphp 5.0版本

    安装swoole pecl install swoole 修改PHP配置文件php.ini加入 extension=swoole.so 有可能不需要人工去加,安装时自动加入进来了, 查看swoole扩 ...

  7. xcode9.4 报错 error:The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

    原因 http | https 协议  不能正常使用 找到的解决方案 但是在字段名上有了变化,不过复制进去 还是会自动选择对应的 解决办法 1. 在Info.plist中添加 App Transpor ...

  8. POC iis短文件名

    __author__ = '*'# -*- coding:utf-8 -*- from lib.httpparse import httpparse def verify(protocol,ip,po ...

  9. repo

    repo init -b remoteBranchName repo sync repo start localBranchName --all 整体切分支 if error is tagger cl ...

  10. Unity中建立文本保存数据

    public void CreateYunYD() { GameToolsManager.Instance.effectType = EFFECTTYPE.YunYD; CreateYunOrWu(& ...