python连接数据库
1、使用Python连接MySql数据库
直接连接MySql:
pymysql.Connect()参数说明
host(str): MySQL服务器地址
port(int): MySQL服务器端口号
user(str): 用户名
passwd(str): 密码
db(str): 数据库名称
charset(str): 连接编码
connection对象支持的方法
cursor() 使用该连接创建并返回游标
commit() 提交当前事务
rollback() 回滚当前事务
close() 关闭连接
cursor对象支持的方法
execute(op) 执行一个数据库的查询命令
fetchone() 取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中的所有行
rowcount() 返回数据条数或影响行数
close() 关闭游标对象
实例:引用pymysql
import pymysql db = pymysql.connect(host='127.0.0.1', # 数据库地址 user='root', # 用户名 db='test', # 应用的数据库名 passwd='123456', # 用户密码 port=3306, # 端口 charset='utf8' # 编码规则 ) # 创建游标 cursor = db.cursor() search_stu = "SELECT * FROM `students` where sno = %s" prams = '108' cursor.execute(search_stu % prams) info = cursor.fetchone() print(info) # 关闭连接 cursor.close() db.close()
2、通过跳板机连接Mysql
很多环境为了安全起见,大多数数据库配置了堡垒机(跳板机),需要通过跳板机才能访问数据库
这里需要引用 sshtunnel 库
实例应用:
import pymysql import json import re from sshtunnel import SSHTunnelForwarder server = SSHTunnelForwarder( ssh_address_or_host=('*.*.*.*', 10037), # 指定ssh登录的跳转机的address ssh_username='root', # 跳转机的用户 ssh_password='123456', # 跳转机的密码 remote_bind_address=('*.*.*.*', 3306) # 数据库的地址及端口 ) # 启动服务 server.start() # 连接数据库 db = pymysql.connect( host='127.0.0.1', # 必须为127.0.0.1 port=server.local_bind_port, user='******', passwd='******', db='******' ) # 创建游标对象 cur = db.cursor() sql = "SELECT COUNT(DISTINCT identity_card) FROM `m_manual_audit_verify` WHERE exam_date ='%s'" prams = '2019-03-15' cur.execute(sql % prams) data = cur.fetchall() # print(type(data)) result_manal_audit = data[0][0] # 直接显示查询的数据结果,方便后续比较 print(result_manal_audit) # data_json = json.dumps(data) # print(type(data_json)) # print(data_json) # pattern = re.compile(r'[^\d]+(\d+)[^\d]+') # 正则匹配数字 # res = re.findall(pattern, data_json) # print(type(res)) # print(res[0]) cur.close() db.close()



浙公网安备 33010602011771号