Python与数据库的交互问题小结
程序员文章站
2022-03-02 15:57:19
目录mongodb连接数据库增删改查封装mysql连接数据库执行操作查询数据异常处理redis连接数据库执行操作mongodb安装模块pip install pymongo连接数据库import py...
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数据库操作命令]()
到此这篇关于python与数据库的交互的文章就介绍到这了,更多相关python数据库交互内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: Unix环境高级编程笔记:9、进程关系
下一篇: 比谁的爸爸速度快
推荐阅读
-
Python2.x中str与unicode相关问题的解决方法
-
python爬虫的数据库连接问题【推荐】
-
python文件读写操作与linux shell变量命令交互执行的方法
-
浅谈python str.format与制表符 关于中文对齐的细节问题
-
Python与shell的3种交互方式介绍
-
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
-
python3.8与pyinstaller冲突问题的快速解决方法
-
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
-
举例讲解Python程序与系统shell交互的方式
-
python中使用 xlwt 操作excel的常见方法与问题