python处理数据库_python操作数据库
操作mysql
image.png
db_config = {
'user': 'root',
'password': 'qwe123',
'db': '數據庫名',
'charset': 'utf8', #不是utf-8
}
conn = pymysql.connect(**db_config)
注意*和**只要在定義的時候才是,其他都是拆包
建立連接:
conn = pymysql.connect(**dbconfig) #連接是不能操作數據庫的,需要用連接生成游標來操作;
創建游標:
cursor = conn.cursor()
執行SQL語句:
executes = cursor.execute(sql)
獲取結果:
values = cursor.fetchall()
one = cursor.fetchone() #取出一條數據
all = cursor.fetchall() #取出所有數據
注意要點
事務的回滾和提交;#rollbck 與commit
在pymysql中執行的SQL語句不需要加 ;
execute執行完后不是直接得到結果,需要你主動去獲取;
和文件一樣,別忘了關閉游標與連接;
實例:
image.png
image.png
注意回滾,回滾的是之前沒有進行過提交commit的哪些。
操作redis
安裝python包redis:
pip install redis
創建連接
re = redis.Redis(host='127.0.0.1', port='55555', password='qwe123')
#redis.Redis() #為了兼容舊版本,不推薦使用
Redis.StrictRedis()
在程序操作的數據為bytes類型,加入decode_response=True,寫入的數據為str類型
re = redis.StrictRedis(host=host, port=port, decode_responses=True)
測試
re.set('num',15)
print(re.get('num'))
set 中文
re.set('name','小白')
print(re.get('name').decode('utf8') )
字符的 編碼
s = '小白'.encode('utf8')
print(type(s),s)
s2 = s.decode()
print(type(s2),s2)
大部分的命令 和 redis 中操作一樣
不同:
re.expire() ### 不能看 負數 -1 -2
re.mset() ## 用鍵值對
re.incr() ## incr 可以加參數的,代替了 incrby
re.decr() ## decr 可以加參數,代替了 decrby
re.lrem() ## num 放到后面
re.hmset() # 多插入,要用字典
封裝的Hash操作demo
import redis
import random
class RedisClient(object):
def __init__(self, key, host='localhost', port=6379):
"""
初始化Redis連接
:param host: 地址
:param port: 端口
"""
self._db = redis.StrictRedis(host=host, port=port, decode_responses=True)
self.key = key
def name(self):
"""
獲取Hash的名稱
:return: Hash名稱
"""
return self.key
def hmset(self, dic):
self._db.hmset(self.name(), dic)
def set(self, field, value):
"""
設置鍵值對
:param field: 鍵
:param value: 值
:return:
"""
return self._db.hset(self.name(), field, value)
def delete(self, *field):
"""
根據鍵名刪除鍵值對
:return: 刪除結果
"""
return self._db.hdel(self.name(), *field)
def count(self):
"""
獲取數目
:return: 數目
"""
return self._db.hlen(self.name())
def random(self):
"""
隨機得到鍵值
:return: 隨機鍵值
"""
# print(self._db.hvals(self.key))
return random.choice(self._db.hvals(self.name()))
def get_field(self):
"""
獲取所有賬戶信息
:return: 所有用戶名
"""
return self._db.hkeys(self.name())
def get_values(self, *field):
"""
根據鍵名獲取鍵值
:param username: 鍵
:return:對應鍵的鍵值
"""
result = self._db.hmget(self.name(), *field)
return result[0] if len(result) == 1 else result
def get_all(self):
"""
獲取所有鍵值對
:return: 所有鍵值對
"""
return self._db.hgetall(self.name())
if __name__ == '__main__':
conn = RedisClient('table')
result = conn.hmset({'a': 1, 'b': 2, 'c': 3})
print(result)
print(conn.get_field())
總結
以上是生活随笔為你收集整理的python处理数据库_python操作数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: string 中的offset_Kafk
- 下一篇: jmeter 高并发测试报告_使用 JM