Python 運算元據庫

2022-08-15 04:09:18 字數 4248 閱讀 8445

一,安裝資料庫

pip install pymysql

pip install redis 

二,python 操作mysql資料庫

import pymysql

def op_mysql(host,user,password,db,sql,port=3306,charset='utf8'):#通用資料庫操作

conn = pymysql.connect(host=host,user=user,

password=password,

port=port,

charset=charset,db=db) #建立連線

cur = conn.cursor(cursor=pymysql.cursors.dictcursor) #建立游標 來向伺服器傳送命令以及接收結果(找個倉庫管理員幫你拿東西)

cur.execute(sql) #執行sql 語句

sql_start = sql[:6].upper() #取sql前6個字串,判斷它是什麼型別的sql語句

if sql_start=='select' :

res = cur.fetchall()

# res = cur.fetchone()#只有一條資料,那麼就用fetchone,超過一條資料那就用fetchall

else:#update insert delete 操作

conn.commit() #提交

res = 'ok'

cur.close() #關閉游標

conn.close() #關閉連線

return res

呼叫函式:

sql = 'select * from bt_stu limit 5;'

sql2 = 'update my_user set money = "%s" where username= "%s";' % (actual_account,user) #注意引號的位置

res = op_mysql(

host='211.149.218.16',

user='jxz',password='123456',#port這裡一定要寫int型別

port=3306,db='jxz',charset='utf8',sql=sql2)

print(res)

三,python 操作redis 資料庫

啟動redis 服務: 進入 redis-server  -> cmd  -> redis-server.exe redis.windows.conf

操作redis 

1,string 型別

r = redis.redis(host='127.0.0.1',port=6379,db=2)#連上redis

r.set('nhy_session','201801211505') #set資料

print(r.get('nhy_session').decode()) #redis裡面取出來的資料都是bytes型別的,所以要用.decode方法轉成字串

print(r.get('nhy_session'))

r.delete('nhy_session')#刪除乙個

r.setex('nhy','hahah',20) #可以指定key的失效時間,單位是秒『

# set get delete setex 都是針對string型別的 k - v

2,hash 型別 (沒有過期時間)

r = redis.redis(host='127.0.0.1',port=6379,db=2)#連上redis

r.hset('sessions','nhy','123456') #插入資料

r.hset('sessions','ybq','1234562')

r.hset('sessions','xsr','1234561')

print(r.hget('sessions','xsr')) #獲取資料

redis_data = r.hgetall('sessions') #獲取到hash型別裡面所有的資料

print(redis_data)

all_data = {}

for k,v in redis_data.items(): #把hash型別裡面所有的資料轉成正常的字典

k = k.decode()

v = v.decode()

all_data[k]=v

print(all_data)

輸出結果:

3,層級型別  (有資料夾)

import redis

r = redis.redis(host='127.0.0.1',port=6379,db=2)#連上redis

r.set('txz:llq','llq123') #

r.set('txz:llq12','llq1234') #

r.set('txz:llq13:llq13','llq1234')

print(r.keys())#獲取所有的key

print(r.keys('txz*')) #以txz開頭的key

print(r.type('sessions'))#獲取key的型別

輸出結果:
[b'txz:llq12', b'txz:llq', b'nhy_session', b'sessions', b'txz:llq13:llq13']

4,操作redis 資料庫string 型別通用函式

import redis

def op_redis(host,password,k,v=none,port=6379,db=0): #操作redis 資料庫string 型別通用函式

r = redis.redis(host=host,password=password,port=port,db=db)

if v:

r.set(k,v)

res = 'ok'

else:

res = r.get(k)

if res: #這裡是判斷有沒有get到資料

res = res.decode()

else:

res = none

return res

四,redis 資料庫備份

import redis

# 1、建立兩個redis連線

#1、src

# 2、 target

#2、獲取到所有的key,kyes ()

# 3、判斷key的型別,string hash

import redis

src_redis = redis.redis(host='211.149.218.16',port=6379,password='123456',db=2)#連上redis

target_redis = redis.redis(host='211.149.218.16',port=6379,password='123456',db=14)#連上redis

for key in src_redis.keys():

if src_redis.type(key) == b'string': #判斷key的型別,因為redis資料取出來都是二進位制的,所以這裡也用bytes

v = src_redis.get(key) #先獲取到原來的資料

target_redis.set(key,v) #再set到新的裡面

else:

all_hash_data = src_redis.hgetall(key) #先獲取到hash型別裡面所有的資料

for k,v in all_hash_data.items(): #因為hash型別的獲取到之後是乙個字典,所以這裡迴圈字典

target_redis.hset(key,k,v) #key是外面的大key,k是裡面的小k,v就是小k對應的value

python運算元據庫

資料庫的操作在現在的python裡面已經變得十分的好用,有了一套api標準.下面的就是講講如何的去使用這套框架定義.此框架包含以下部分 connect parameters.其中的引數格式如下 dsn 資料來源名稱 user 使用者名稱 可選 password 密碼 可選 host 主機名 可選 d...

python 運算元據庫

目的 通過excel定義檢查指標項,然後通過python讀取指標,通過oracle sqlplus工具去執行獲取具體巡檢結果。unicode utf 8 coding utf 8 import os import sys import xlrd import paramiko reload sys ...

python運算元據庫

python運算元據庫都是通過資料庫驅動取操作的。現在主要有兩張,一種是通過pymysql,還有一種是通過sqlalchemy。在這裡可能還會有人說還有mysqldb模組也可以操作。確實是的,但是mysqldb對python3已經不支援了,所以這裡我就不討論了。第一種pymysql pymysql幫...