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. Spring Cloud和Spring Boot的区别

    Spring MVC: Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC ...

  2. Linux 常用系统工作命令

    1.echo 用于输出字符串或者变量的值 2.date 显示及设置系统的时间和日期,格式为 “date [选项][+指定格式]”,输入以“+”号开头的参数,及可按照指定格式输出 date命令参数及作用 ...

  3. CI/CD

    CI/CD 啥是CI/CD CI: continuous integration, 持续集成.就是频繁地把开发的工作提交到主线代码.主要是为了解决集成问题.什么是集成问题呢,白话说,就是从你本地的代码 ...

  4. pycharm同步代码到coding

    代码同步coding三步曲: 1.pycharm的tips---vcs---checkout from version control---git 选择git后会弹出clone repository弹 ...

  5. stm32 HAL库笔记(一)——串口的操作

    昨天分析了普通io口的使用,和初始化代码流程,回顾一下,首先定义一个配置io口功能的结构体,然后开启时钟,再去配置这个结构体里面的各个成员变量,每个成员变量都有很多种选择,可以看各个成员变量 后面的注 ...

  6. java面试题复习(六)

    51.实现多线程的方法 一种是继承Thread类:另一种是实现Runnable接口.两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如 ...

  7. C# ConfigurationManager不存在问题解决

    在做串口通信的时候,需要使用"ConfigurationManager"类,但是添加"Using System.Configuration"命名空间后编译器依旧 ...

  8. Hibernate Search集与lucene分词查询

    lucene分词查询参考信息:https://blog.csdn.net/dm_vincent/article/details/40707857

  9. openpyxl一点心得

    先上代码 from openpyxl import workbook,load_workbook class HomeWork(): def creat_xlsx(self): "" ...

  10. Window上编译最新版libCef(Branch 2704)(转载)

    转自http://blog.csdn.net/mfcing/article/details/52066579 1.开发环境搭建   VS2010及以上版本,CMake 2.8.12.1及以上版本.我安 ...