Python操作数据库
时间:2021-07-01 10:21:17
帮助过:21人阅读
方式一 直接连接
#!/usr/bin/python3
# a sample to use mysql-connector for python3
# see details from http://dev.mysql.com/doc/connector-python/en/index.html
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,返回查询结果
def SSHMysql(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)
Python操作数据库,装饰器管理数据库的的打开和关闭。
import pymysql
class ConDb():
def openClose(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操作数据库
标签:获取 status 执行sql 关闭数据库 cep html 检查 打印 elf