Python与数据库的交互

MongoDB

安装模块

  • pip install pymongo

连接数据库

import pymongo
client = pymongo.MongoClient()
db = client["database_name"] # 跟上数据库名
collection = db["set_name"] # 指定集合名

增删改查

  • 添加--->insert_one | insert_many

    collection.insert_one({"name":"kongshang","age":12})
  • 查找--->find | find_one

    collection.find()

    注意要用list转换得到的数据

  • 修改--->update_one | update_many

    collection.update_one({"name":"kongshang"},{'$set':{"age":13}})
  • 删除--->delete_one | delete_many

    collection.delete_one({"name":"kongshang"})

封装

import pymongo
class MyMonDB:
def __init__(self, database, collection): # 数据库及集合
self.client = pymongo.MongoClient() # 连接数据库使用
self.db = self.client[database] # 指定使用的数据库
self.col = self.db[collection] # 指定使用的集合
def insert(self, data, onlyOne=True): # onlyOne用来控制插入单条还是多条数据
if onlyOne:
self.col.insert_one(data)
else:
self.col.insert_many(data)
def find(self, query=None, onlyOne=True): # query是查询条件
if onlyOne:
ret = self.col.find_one(query)
return ret
else:
ret = self.col.find(query)
return list(ret)
def update(self, data_old, data_new, onlyOne=True):
if onlyOne:
self.col.update_one(data_old, {"$set": data_new})
else:
self.col.update_many(data_old, {"$set": data_new})
def delete(self, data, onlyOne=True):
if onlyOne:
self.col.delete_one(data)
else:
self.col.delete_many(data)

注意该数据库对大小写敏感

MySQL

安装模块

  • pip install pymysql

连接数据库

import pymysql
# 连接mysql
db_config = {
"host": "127.0.0.1",
"port": 3306,
"user": "admin",
"password": "qwe123",
"db": "stu", # 指定操作的数据库
"charset": "utf8"
}
conn = pymysql.connect(**db_config) # mysql登录 **是字典拆包
print(conn)

执行操作

cur = conn.cursor() # 返回一个执行数据库命令游标对象,通过游标对象执行SQL命令
cur.execute("INSERT INTO stu (id, name) VALUES (1, 'nihao'),(2, 'ci')") # 执行SQL命令执行插入命令
conn.commit() # 事务,提交保存
cur.close() # 关闭游标对象
conn.close() # 关闭数据库

查询数据

cur.execute("SELECT * FROM stu") # 执行SQL命令
# print(list(cur))
# print(cur.fetchone()) # 查询单条
# print(cur.fetchmany(3)) # 查询多条
print(cur.fetchall()) # 查询所有

异常处理

try:
cur.execute("INSERT INTO stu (id, name) VALUES (1, 'nihao'), (2, 'ci')")
except Exception as e:
print(e)
conn.rollback() # 事务回滚
else:
conn.commit() # 事务提交
finally:
cur.close() # 关闭游标对象
conn.close() # 关闭数据库

Redis

安装模块

  • pip install redis

连接数据库

import redis
# 登录数据库
# host ip地址
# decode_responses get获得键值时 True返回字符串数据,默认是False二进制数据
# db 指定数据库,默认为1
red = redis.StrictRedis(host="127.0.0.1", decode_responses=True, db=2)

执行操作

# 字符串
red.set("num", 1)
print(red.get("num"))
print(red.type("num"))
red.delete('num')
# 综上,调用Redis数据库的方法是red.[输入redis数据库操作命令]()
posted @   Kenny_LZK  阅读(75)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示