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)
執(zhí)行操作
cur = conn.cursor() # 返回一個執(zhí)行數據庫命令游標對象,通過游標對象執(zhí)行SQL命令
cur.execute("INSERT INTO stu (id, name) VALUES (1, 'nihao'),(2, 'ci')") # 執(zhí)行SQL命令執(zhí)行插入命令
conn.commit() # 事務,提交保存
cur.close() # 關閉游標對象
conn.close() # 關閉數據庫
查詢數據
cur.execute("SELECT * FROM stu") # 執(zhí)行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)
執(zhí)行操作
# 字符串
red.set("num", 1)
print(red.get("num"))
print(red.type("num"))
red.delete('num')
# 綜上,調用Redis數據庫的方法是red.[輸入redis數據庫操作命令]()
到此這篇關于Python與數據庫的交互的文章就介紹到這了,更多相關Python數據庫交互內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Python中高效的json對比庫deepdiff詳解
- python處理json文件的四個常用函數
- 使用python如何提取JSON數據指定內容
- python如何讀取和存儲dict()與.json格式文件
- 利用python實現(xiàn)JSON文檔與Python對象互相轉換
- python+html實現(xiàn)前后端數據交互界面顯示的全過程
- python tkinter與Mysql數據庫交互實現(xiàn)賬號登陸
- python實現(xiàn)與Oracle數據庫交互操作示例
- python 如何用urllib與服務端交互(發(fā)送和接收數據)
- python GUI庫圖形界面開發(fā)之PyQt5中QWebEngineView內嵌網頁與Python的數據交互傳參詳細方法實例
- python與json數據的交互詳情
相關文章
python GUI庫圖形界面開發(fā)之PyQt5窗口布局控件QStackedWidget詳細使用方法
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5窗口布局控件QStackedWidget詳細使用方法,需要的朋友可以參考下2020-02-02
Python之random.sample()和numpy.random.choice()的優(yōu)缺點說明
這篇文章主要介紹了Python之random.sample()和numpy.random.choice()的優(yōu)缺點說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

