Python之mysq的l操作与封装
一、pymsql 安装
pip install pymysql
二、pymysql 包引入
import 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()