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數據庫操作命令]()

到此這篇關於Python與數據庫的交互的文章就介紹到這瞭,更多相關Python數據庫交互內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: