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!
推薦閱讀:
- 深入瞭解Python如何操作MongoDB
- Python 操作 MongoDB 講解詳細
- Python 操作 MongoDB數據庫的方法(非 ODM)
- 教你用python實現一個無界面的小型圖書管理系統
- Python通過pymysql調用MySQL進行增刪改移查