1、Python 需要安装 pymysql 模块
步骤:
2、链接数据库,简单验证
import pymysql
# 1.建立链接,使用 pymysql 库中的 connect(可耐科特)
conn = pymysql.connect(host=‘数据库主机名‘,
user=‘用户名‘,
password=‘密码‘,
db=‘数据库名‘,
port=3306,
charset=‘utf8‘, # 编码集utf8,不能写utf-8
cursorclass=pymysql.cursors.DictCursor) # 游标类pymysql.cursors(考死).DictCursor(迪斯科考死)
# DictCursor游标类,返回单个结果为字典,多个结果为嵌套字典的列表
# 不添加 cursorclass 游标嵌套元祖的元祖
# 2.创建游标 cursor(烤色)
cursor = conn.cursor()
# 3.需要执行 sql 语句
# 方式一:查询单条数据
sql = "select * from member where mobilephone=13264489754;"
# 方式二:用户输入手机号查询
# 使用 %s 站位,传入用户输入的值 mobile
# mobile = input("请输入您的手机号:")
# sql1 = "select * from member where mobilephone=%s;"
# 方式三:查询多条数据
# sql2 = "select * FROM member LIMIT 0,10;"
# 4.执行那条 sql 语句,使用 游标 当中的 execute(埃克斯Q特)
# 执行第一条sql
cursor.execute(sql)
# 执行第二条sql
# cursor.execute(sql1, args=(mobile,)) # args(阿格斯)=需要传一个序列类型,列表,元祖,字符串,一个元素的元祖使用逗号
# 执行第三条sql
# cursor.execute(sql2)
# 5.手动提交,使用 链接对象当中的 commit(可买次)
conn.commit()
# 6.获取执行结果,使用 游标 当中的 fetchone(翻吃万)
result1 = cursor.fetchone() # fetchone(翻吃万)只返回一个结果,一条记录组成的字典
# print(result1)
result2 = cursor.fetchall() # fetchall(翻吃奥) 获取多条结果,嵌套字典的列表
# print(result2)
# 7.关闭链接,释放资源 close(科楼司)
# 先关游标
cursor.close()
# 再关闭游标对象
conn.close()
3、使用 pymysql 模块来连接mysql, 执行sql语句, 进行数据校验
import pymysql
class HandleMysql:
"""
使用 pymysql 模块来连接mysql, 执行sql语句, 进行数据校验
"""
def __init__(self):
self.conn = pymysql.connect(host=‘数据库主机名,可以放在配置文件‘,
user=‘用户名,可以放在配置文件‘,
password=‘密码,可以放在配置文件‘,
db=‘那个数据库名,可以放在配置文件‘,
port=‘端口号,可以放在配置文件‘,
charset=‘utf8‘,
cursorclass=pymysql.cursors.DictCursor)
self.cursor = self.conn.cursor() # 创建游标
def run(self, sql, args=None, is_more=False): # is_more是否是多个
"""
执行sql语句
:param sql:sql语句
:param args:元组类型可变参数(用于sql语句字符串中的占位符填充时传参使用)
:param is_more:默认False为执行一条sql语句
:return:sql语句执行结果(fetchone()返回的是一个字典,fetchall()返回的是一个嵌套字典的列表)
"""
self.cursor.execute(sql, args=args) # 执行sql
self.conn.commit() # 手动提交
if is_more:
return self.cursor.fetchall() # is_more 为 Trun获取多条执行结果
else:
return self.cursor.fetchone() # is_more 为 False获取单条执行结果
def close(self):
"""
关闭链接,释放资源
"""
self.cursor.close() # 关闭游标
self.conn.close() # 关闭数据库
if __name__ == ‘__main__‘:
mobile = ‘13264489754‘
sql_1 = "select * from member where mobilephone=%s;"
sql_2 = "select * FROM member LIMIT 0,10;"
do_mysql_1 = HandleMysql()
res1 = do_mysql_1.run(sql_1, args=(mobile,))
print(res1)
do_mysql_2 = HandleMysql()
res2 = do_mysql_2.run(sql_2, is_more=True)
print(res2)
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/ 谢谢!!*******
python 中 pymysql 模块链接 MySQL 数据库,进行数据验证及封装
原文:https://www.cnblogs.com/shouhu/p/12148980.html