python3操作数据库

本文介绍了如何使用Python连接MySQL、PostgreSQL和MongoDB数据库,以及连接和操作Redis缓存。通过导入相应的库,如`pymysql`, `psycopg2`, `pymongo`和`redis`,并设置连接参数,可以实现数据的增删改查操作。对于MongoDB,还提到了不同版本的认证机制。此外,示例中展示了Redis的键值存储和数据插入方法。
摘要由CSDN通过智能技术生成

python连接mysql

#先导包 没有安装的话  命令行执行 pip install pymysql
import pymysql
#连接数据库
db=pymysql.connect(host='localhost',port='3306',user='admin',password='admin',database='database',charset='utf8')
#创建游标
cursor = db.cursor()
#需要执行的sql
sql='select * from table'
sq='insert into table value()'
sq='update table set 值 where 条件'
#执行sql语句
cursor.execute(sql)
#用变量接收执行的sql结果
result=cursor.execute(sql)
#执行增删改 提交
db.commit()
#执行完后关闭游标与数据库连接
cursor.close()
db.close()

python 连接postgresql

#导包 先下载 pip install psycopg2
import psycopg2
import datetime #时间模块,有需要什么样格式的时间具体百度
#连接postgrelsql
conn=psycopg2.connect(database='vmall',user='admin',password='admin',host='localhost',port='8000')
#创建游标
cursor=conn.cursor
#执行sql语句
cursor.execute("sql")
#执行后提交
conn.commit()
#关闭游标数据库连接
cursor.close()
conn.close()
#插入数据时,如果格式化不好使的时候可以强行使用
'"+uid+"' #uid为想格式化转换的但不好使的数据,要先转化成str
#如自定义一个变量
uid=('a','b','c')
sql=cursor.execute("insert into table value(1,2,'"+uid+"')")

python连接mongodb

#下载pymango   pip install pymongo
import pymongo
#连接mongodb  数据库:nrt_data     自己用到的
client=pymongo.MongoClient('ip',8635) #需要连接的mangodb ip端口
client.nrt_data.authenticate('用户','密码',mechanism='SCRAM-SHA-1')

(1)无密码无认证下连接
from pymongo import MongoClient
host = '10.90.10.9'   # 你的ip地址
client = MongoClient(host, 27017)  # 建立客户端对象
db = conn.mydb  # 连接mydb数据库,没有则自动创建
myset = db.testset   # 使用test_set集合,没有则自动创建
myset.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功
# 下面是遍历查询数据
for i in myset.find():
    print(i)
(2)有密码连接(默认数据库 admin)

from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#连接mydb数据库,账号密码认证
db = client.admin    # 连接系统默认数据库admin
db.authenticate("用户名", "密码")
collection = db.myset   # myset集合,同上解释
collection.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功
或者 自己定义的数据库

from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#连接mydb数据库,账号密码认证
db = client.mydb    # mydb数据库,同上解释
db.authenticate("用户名", "密码")
collection = db.myset   # myset集合,同上解释
collection.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功
如果出错了,报错:pymongo.errors.OperationFailure: auth failed,可以增加mechanism参数,因为mongoDB有不同的认证机制,3.0版本以后采用的是'SCRAM-SHA-1', 之前的版本采用的是'MONGODB-CR'

即

db.authenticate("用户名", "密码",mechanism='MONGODB-CR')
(3)有密码,可以直连admin默认数据库,不能连接自定义数据库

这种时候先连接系统默认admin,再转换为自定义数据库

from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#连接mydb数据库,账号密码认证
db = client.admin    # 先连接系统默认数据库admin
# 下面一条更改是关键,我竟然尝试成功了,不知道为啥,先记录下踩的坑吧
db.authenticate("用户名", "密码",mechanism='MONGODB-CR') # 让admin数据库去认证密码登录
my_db = client.mydb  # 再连接自己的数据库mydb
collection = my_db.myset   # myset集合,同上解释
collection.insert_one({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功  多条insert_many
ps:如需插入大量数据 可以使用for循环 +insert_one

python连接redis

#连接redis哨兵  先下载 pip install redis
#一般测试连redis都是清理缓存
import redis
from rediscluster import StrictRedisCluster #redis 5.0修改了不支持StrictRedisCluster方法
#pip install redis-cluster-py
from rediscluster import RedisCluster #redis 5.0
#连接redis哨兵
startup_nodes=[{"host":"localhost","port":"6379"},{"host":"host1","port":"6379"}]
r=RedisCluster(startup_nodes=startup_nodes,password="passwd",decode_responses=True)
#往redis中插值
r.set('test', 111)
#获取redis键为test的值
r.get('test')
#获取所以后缀为_stat的所有键
key_k=r.keys("*_stat")
for i in key_k:
    r.get(i)




#  连redis第二种
import redis
r=redis.Redis(host="xxxx",port=6379,db=0,decode_responses=True,password=xxxx)
s=r.hget("key",2)
s1=r.hgetall("key")
print(s)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值