一、pymsql 安装
二、pymysql 包引入
三、mysql之简单操作
import pymysql
#1、连接mysql数据-占用数据库资源
db = pymysql.connect( # 实例化连接,对象接收
host="api.huuyaa.com", # 数据库主机地址
user="future", # 登录数据库的账号
password="XXXXXXX", # 登录数据库的密码
port=3306, # 端口
database="XXXXXX", # 数据库名称
charset="utf8", # 编码格式
cursorclass=pymysql.cursors.DictCursor # cursorclass运行生成的是元祖,我们把它设置转换成字典形式
)
# 2、创建游标:游标默认是放在第一行,如果读到第5行,是不会自动返回到第一行的
cur = db.cursor()
# 3、执行sql语句
sql = "select id from member where mobile_phone='133XXXXXXXX'"
##使用execute()方法进行查询,返回的是,sql语句执行结果的行数
cur.execute(sql)
# sql = "select id from member where mobile_phone='%s'"
# cur.execute(sql,('133XXXXXXXX',)) # 使用这个号码替换占位符
# 返回的是affected_rows表示执行后的结果:查询的结果 有多少条数据
affected_rows = cur.execute(sql)
# 4、获取查询的结果
# 获取第一个结果。返回是一个字典。
# data = cur.fetchone()
# cur.fetchmany(size=2) # 获取前2行
# 获取所有的结果。返回的是一个列表。
data = cur.fetchall()
print(data)
# 5、关闭游标、关闭数据库连接
cur.close()
db.close()
四、mysql 封装
#封装数据库操作
import pymysql
import os
from common.myConf import MyConf
from common.my_path import conf_dir
class MyMysql:
def __init__(self):
"""
这样是写死的,做的很不灵活,所以我们做成可配置的
db = pymysql.connect( # 实例化连接,对象接收
host="api.huuyaa.com", # 数据库主机地址
user="future", # 登录数据库的账号
password="xxxxxx", # 登录数据库的密码
port=3306, # 端口
database="xxxxxxx", # 数据库名称
charset="utf8", # 编码格式
cursorclass=pymysql.cursors.DictCursor # cursorclass 运行生成的是元祖,我们把它设置转换成字典形式
)
"""
# 实例化配置类对象
conf = MyConf(os.path.join(conf_dir, "mysql.ini"))
# 连接数据库/生成游标
self.db = pymysql.connect(
host=conf.get("mysql", "host"),
user=conf.get("mysql", "user"),
password=conf.get("mysql", "passwd"),
port=conf.getint("mysql", "port"),
database=conf.get("mysql", "database"),
charset="utf8",
cursorclass=pymysql.cursors.DictCursor
)
# 2、创建游标
self.cur = self.db.cursor()
def get_count(self,sql):
count = self.cur.execute(sql)
return count
def get_one_data(self,sql):
self.cur.execute(sql)
return self.cur.fetchone()
def get_many_data(self,sql, size=None):
self.cur.execute(sql)
if size:
return self.cur.fetchmany(size)
else:
return self.cur.fetchall()
# def update_data(self):
# 事务
# 提交commit 回滚 rollback
# pass
def close_conn(self):
self.cur.close()
self.db.close()
if __name__ == '__main__':
conn = MyMysql()
sql = "select id from member where mobile_phone='13350000000'"
count = conn.get_count(sql)
print(count)
conn.close_conn()