Python操作数据库(mysql redis)

一、python操作mysql数据库:

数据库信息:(例如211.149.218.16   szz  123456)

操作mysql用pymysql模块

#操作其他数据库,就安装相应的模块

import  pymysql

ip=’211.149.218.16’

port=3306

passwd=’123456’

user=’root’

db=’szz’

conn=pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db,charset=’utf8’)         #创建一个数据库连接

cur = conn.cursor(cursor=pymysql.cursors.DictCursor)             #在连接上创建一个游标,通过游标去操作数据库;括号里指定游标的类型为字典(指定为字典,方便取值),不指定默认为元组

sql=’insert into nhy(id,name,sex) VALUE (1,’hn’,’nv’);’               #写sql语句

sql2=’select * from nhy;’

cur.execute(sql)               #执行sql语句

cur.execute(sql2)

row_1 = cur.fetchone()                    #获取查询结果的第一条数据,返回的是一个元组,每执行一次就获取一行

row_2 = cur.fetchmany(3)                     # 获取前n行数据,此时游标在n条数据后面

row_3 = cur.fetchall()              # 获取所有数据,此时游标在最后面

PS:(

fetchall和fetchone的区别:

如果select本身取的时候有多条数据时:

cursor.fetchone():将只取最上面的第一条结果,返回单个元组如(‘id‘  ,‘title‘),   然后多次使用cursor.fetchone(),依次取得下一条结果,直到为空。

cursor.fetchall() :将返回所有结果,返回二维元组,如((‘id‘,‘title‘),(‘id‘,‘title‘)),

如果select本身取的时候只有一条数据时:

cursor.fetchone():将只返回一条结果,返回单个元组如(‘id‘,‘title‘)。

cursor.fetchall() :也将返回所有结果,返回二维元组,如((‘id‘,‘title‘),),

cur.scroll(n,mode=’absolute’)         #移动游标,mode=absolute或relative, absolute指把游标移到数据的第n行,relative的意思是把游标移动到当前游标所在行+n行的位置

cur.scroll(0,mode=’absolute’)             #把游标移动到最前面,不管游标在哪

conn.commit()           #ddl(insert delete update)dcl dml语句必须提交才生效,不然无法保存新建或者修改的数据

cur.close()             #关闭游标

conn.close()               #关闭数据库连接

======eg:写操作mysql的函数:

import pymysql

def OperationDb(host,user,passwd,port,db,sql,charset=‘utf8‘):  #传参

pymysql.connect(host=host,user=user,passwd=passwd ,port=port,db=db,charset=charset)  #建立连接

cur = conn.cursor(cursor=pymysql.cursors.DictCursor)   #建立游标

cur.execute(sql)  #执行sql语句

if sql.startswith(‘select‘):   #判断字符串是不是以什么开头

res=cur.fetchall()     #判断如果是select语句,直接返回出执行结果,不用commit了

else:

conn.commit()   #如果是insert delete update等语句,则需要提交

res=00   #如果不是select语句,返回00

cur.close()

conn.close()

return  res

ss=OperationDb(

host=‘211.149.147.233‘,user=‘byz‘,passwd=‘123456‘,db=‘byz‘,sql=‘insert into hn(id,name,sex)  VALUE(08,"houning","female") ;‘

)                     #外面用单引号,sql语句里面要用双引号;#调用这个函数,并传参,把这个函数的值赋给ss

print(ss)        #打印出ss,即函数体里的res

操作redis:

redis是一个nosql类型的数据库(安装Redis Desktop Manager ),里面存的是键值对,键值对数据都存在内存中,有很快的读写速度;python操作redis需要使用redis模块,pip安装即可。

#======下面是操作字符串类型的,key都是string类型

import redis

r = redis.Redis(host=‘127.0.0.1‘,port=6379,db=0,password=’123456’)    #指定连接redis的ip、端口号以及哪个数据库、密码

r.set(‘name‘, ‘houning‘)    #设置key和value;name是字段,houning是值;如果name的值已存在,这样写就会把原来的值替换掉;

r.setnx(‘name2‘, ‘value‘)    #设置的name的值,如果name不存在的时候才会设置

r.setex(‘name3‘, ‘value‘, 30)   #设置的name的值,和失效时间,过了30秒后,name3这个key就会自动失效(因为数据都是存在内存当中的,要释放);比如登录一个网页,10分钟后,就需要重新登录,这里就用到了redis的失效时间

r.mset(k1=‘v1‘,k2=‘v2‘)     #批量设置多个值,不能设置失效时间

n=r.get(‘name‘)     #获取name的值,redis里面获取到的都是bytes类型;

print(n.decode())    # redis里存进去的都是字符串,但获取出来的是bytes类型;decode方法是把bytes类型的结果转换成string类型的

print(json.loads(n.decode()))    #把字符串类型再转换成字典或list类型的

print(r.mget(‘k1‘,‘k2‘))    #批量获取key

r.delete(‘name‘)     #删除值

r.delete(‘k1‘,‘k2‘)     #批量删除

print(r.keys())        #获取所有的key

#======下面是操作哈希类型的key

import redis

r = redis.Redis(host=‘127.0.0.1‘,port=6379,db=0,password=’123456’)    #指定连接redis的ip、端口号以及哪个数据库、密码

r.hset(‘hname‘, ‘hn‘, ‘123456‘)          #设置哈希类型hname的值,hname是外面的key,hn是里面的key,123456是里面key的值

r.hset(‘hname‘, ‘zg‘, ‘456789‘)         #继续给hname设置哈希类型的值

r.hsetnx(‘hname‘,‘key2‘,‘value23‘)            #为hname设置里面的key和value,hname这个key不存在的时候才会设置

r.hmset(‘hname‘,{‘k1‘:‘v1‘,‘k2‘:‘v2‘})     #批量设置哈希类型hname的key和value

r.hget(‘hname‘, ‘hn‘)     #获取hname里hn的值,取出来是123456

print(r.hgetall(‘hname‘))    #获取hname里面所有的key和value,是一个字典

r.hdel(‘hname‘,‘hn‘)      #删除哈希类型hname里,指定的hn值

print(r.keys())         #获取所有的key

PS:

r.set(‘user:houning‘,‘123456‘)    #设置key时,如果带冒号,则会在redis上自动建一个user的文件夹,文件夹里存的key和value值为:user_houning,123456

r.hset(‘session:test‘,‘houning‘,‘123456‘)    #哈希类型的同上,会自动创建一个session的文件夹,外面的值为“test”,里面的key和value是:houning,123456

====== eg:写操作redis的函数

def  OperationRedis(host,passwd,k,v=False,port=6379,db=0):    #因为set值时,key和value都得填,所以把v设置成默认值参数

r=redis.Redis(host=host,password=passwd,port=port,db=db)

if v:                  #如果传了v的值,则设置key和value

r.set(k,v)

res=88

else:                  #没有传v的值

res=r.get(k).encode()        #转换成字符串类型

return  res

时间: 2024-10-20 00:13:05

Python操作数据库(mysql redis)的相关文章

python 操作数据库(mysql)

1.安装插件网上很多不在啰嗦. 2.连接数据库后创建一个表 MySQLdb conn = MySQLdb.connect(         =,         =,         =,         =,         =,         ) cur = conn.cursor() cur.execute() 3.增加一条数据 MySQLdb conn = MySQLdb.connect(         =,         =,         =,         =,     

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

Python操作数据库及hashlib模块

一.hashlib模块 hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib #导入模块 ######## md5 ########### m = hashlib.md5() #创建一个对象 m.update(b"hhf") #加密字符串 b代表byte,是把字符串转换成byte类型,也可以用bytes()强制转换

python操作数据库-安装

首先是下载软件: 链接:http://pan.baidu.com/s/1nvp1imX 密码:6i0x 之后就是一系列设置. 安装教程:自行百度就行.需要注意的是设置my.ini时,需要加上这些东西(以保证全部是utf8编码,不乱码): [mysql]default-character-set=utf8 [mysqld]character-set-server=utf8才行.把[mysqld]覆盖了就行. 另外在cmd中怎样打开关闭,连接mysql呢? 首先打开cmd,找到mysql安装目录的b

Python接口测试实战3(上)- Python操作数据库

如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战2 - 使用Python发送请求 Python接口测试实战3(上)- Python操作数据库 Python接口测试实战3(下)- unittest测试框架 Python接口测试实战4(上) - 接口测试框架实战 Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

零基础学Python--------第11章 使用Python操作数据库

第11章 使用Python操作数据库 11.1 数据库编程接口 在项目开发中,数据库应用必不可少.虽然数据库的种类有很多,如SQLite.MySQL.Oracle等,但是它们的功能基本都是一样的,为了对数据库进行统一的操作,大多数语言都是提供了简单的.标准化的数据库接口(API).在Python Database API 2.0 规范中,定义了Python数据库API接口的各个部分,如模块接口.连接对象.游标对象.类型对象和构造器.DB API 的可选扩展以及可选的错误处理机制等.下面重点介绍一

python学习笔记10:python操作数据库(mysql、redis)

一.python操作mysql数据库 python3中操作mysql数据需要安装一个第三方模块,pymysql,使用 pip install pymysql 安装即可 二.python操作redis redis是一个nosql类型的数据库,数据都存在内存中,有很快的读写速度 python3中操作reids需要安装一个第三方模块,redis,使用 pip install redis 安装即可

python操作数据库(MySQL、redis)

1.Python3操作MySQL数据库需要安装一个第三方模块(pymysql):pip install pymysql:操作redis需要安装redis模块(redis):pip install redis Python操作MySQL: import pymysql #导入模块# conn =pymysql.connect(host='211.149.147.233',user='byz',passwd='123456',db='byz',port=3306,charset='utf8')#创建

python操作数据库(MySQL)

1.安装数据库MySQL 2.执行pip install pymysql 安装pymysql连接数据库 3.python连接数据库具体操作: import pymysql # 1.连接上mysql ip 端口号 密码 账号 数据库 conn = pymysql.connect(host='123.456.789.00', user='root', passwd='123456', # port这里一定要写int类型 port=3306, db='test', charset='utf8') #c