Python運算元據庫

2022-08-10 07:09:09 字數 3515 閱讀 8682

#

方式一 直接連線

#!/usr/bin/python3

#a sample to use mysql-connector for python3

#see details from

import

pymysql

#設定sql

sql = '

select mobile,email,cust_short_name,cust_id,create_time from db_cust.t_cust_info where cust_id in ("cb0000031509","cp0000003520")and institution_type = "common" and record_status = 1 and `status` = "enable" order by id asc;

'def

mysql_test():

#建立資料庫連線

db = pymysql.connect(host='

192.168.3.15',

port=3306,

user='

tester',

passwd='

aa123456',

database='

db_cust',

)cursors =db.cursor()

#執行sql

cursors.execute(sql)

#接收查詢的資料

info =cursors.fetchall()

#列印查詢的二維陣列資料

for i in

range(len(info)):

for j in

range(len(info[0])):

print

(info[i][j])

#關閉連線

cursors.close()

db.close()

if__name__ == "

__main__":

mysql_test() #

方式二 跳板機ssh連線

import

pymysql

from sshtunnel import

sshtunnelforwarder

#傳入例項名和sql,返回查詢結果

defsshmysql(db, sql):

#配置ssh連線

server =sshtunnelforwarder(

ssh_address_or_host=('

140.130.74.54

', 4888), #

指定ssh登入的跳轉機的address

ssh_username='

***', #

跳轉機的使用者

ssh_password='

***', #

跳轉機的密碼

local_bind_address=('

127.0.0.1

', 1268), #

對映到本機的位址和埠

remote_bind_address=('

16.1.24.201

', 61113)) #

資料庫的位址和埠

server.start() #

啟用ssh

#資料庫賬戶資訊設定

db =pymysql.connect(

host="

127.0.0.1

", #

對映位址local_bind_address ip

port=1268, #

對映位址local_bind_address埠

user="

*****",

passwd="

*****",

database='

db_cust

', #

需要連線的例項名

charset='

utf8')

cursor =db.cursor()

cursor.execute(sql.encode(

'utf8

')) #

執行sql

data = cursor.fetchall() #

獲取查詢結果

#關閉資料庫連線

cursor.close()

return

data

if__name__ == "

__main__":

sql="

select * from t_cust_batch;

"selectresult = sshmysql('

db_cust

', sql)

import

pymysql

class

condb():

defopenclose(fun):

def run(self,sql=none):

#建立資料庫連線

db=pymysql.connect(host='

localhost

',port=3306 ,user='

root

',password='

root

',db='

ljj',charset='

utf8')

#建立游標

cursor =db.cursor()

try:

#執行sql語句

cursor.execute(fun(self,sql))

#得到返回值

li=cursor.fetchall()

#提交事務

db.commit()

except

exception as e:

#如果出現錯誤,回滾事務

db.rollback()

#列印報錯資訊

print('

執行',str(fun),'

方法時出現錯誤,錯誤**:

',e)

finally

:

#關閉游標和資料庫連線

cursor.close()

db.close()

try:

#返回sql執行資訊

return

li

except

:

print('

沒有得到返回值,請檢查**,該資訊出現在condb類中的裝飾器方法')

return

run

@openclose

def runsql(self,sql=none):

if sql is

none:

sql='

select * from batch

'return

sql

@openclose

def runsql1(self,sql=none):

return sql

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幫...