入门篇
首先安装 pymsql
然后 pip install pymsql
初次使用的时候
插入数据
import pymysql.cursors
#连接数据库
connection = pymysql.connect(host='localhost',user ='root',password='123456',db='javaweb',charset='utf8mb4')
try:
#获取会话指针
with connection.cursor() as cursor:
#创建sql语句
sql = "insert into zc (name,psw,email) values(%s,%s,%s)"
#使用execute传参数
cursor.execute(sql,('5','6','7'))
#cursor.execute("insert into zc (name,psw,email) values(%s,%s,%s)",['a','b','c'])
#执行
connection.commit()
finally:
#最终关闭
connection.close()
查询数据
#导入开发包
import pymysql.cursors
#获取链接
connection = pymysql.connect(host='localhost',user ='root',password='123456',db='javaweb',charset='utf8mb4')
try:
#获取会话指针
with connection.cursor() as cursor:
#查询语句
sql = "select * from zc"
conut = cursor.execute(sql)
#使用fetchall获取所有查询,然后打印
result = cursor.fetchall()
print(result)
#cursor.execute("insert into zc (name,psw,email) values(%s,%s,%s)",['a','b','c'])
#执行
connection.commit()
finally:
#最终关闭
connection.close()
接下来封装一个查询类 并逐步完善
先讲一下思路,python在连接数据库时候
1.首先连接
def get_conn(self):#连接数据库
try:
self.connection = pymysql.connect(host='localhost',user ='root',password='123456',db='javaweb',charset='utf8mb4')
except:
print('数据库连接错误')
2.建立sql语句
sql = "select * from zc"
3.找到cursor
cursor = self.connection.cursor()
4.执行语句
cursor.execute(sql)
5.拿到结果
rest = cursor.fetchone()
6.数据处理
rest = dict(zip([k[0] for k in cursor.description],rest))
7.关闭会话
cursor.close()
8.关闭数据库连接
self.close_conn()
封装时,把连接做一个函数,关闭做一个函数,查询做一个函数,然后就可以调用了
讲一下下方的zip 函数
cursor.description 方法 ,返回所有表项的类型,返回的是一个元组
(('name', 253, None, 200, 200, 0, False), ('psw', 253, None, 200, 200, 0, False), ('email', 253, None, 200, 200, 0, False))
那么怎根据索引输出相对应的值呢 ,
解决方案
dict(zip([k[0] for k in cursor.description],rest))
#k[0] for k in cursor.description 输出表项的 ['name', 'psw', 'email'] 组成一个列表
#a=k[0] for k in cursor.description
#b=('dzc', '123', '12345678@qq.com')
#zip(a,b)后 变成[('name','dzc'),('psw','123'),('email','12345678@qq.com)']
#然后强制转换类型dic 变成了字典
#那么有以下rest['name']的调用
#返回dzc
完整代码如下 ,持续更新,路过的有用的话点下关注 ,干货满满,博主本人自己是学生,更新速度会很快,愿我们一起进步。
import pymysql.cursors
class MysqlSearch(object):#创建MysqlSearch类并继承object对象
def __init__(self):#初始化调用连接数据库
self.get_conn()
def get_conn(self):#连接数据库
try:
self.connection = pymysql.connect(host='localhost',user ='root',password='123456',db='javaweb',charset='utf8mb4')
except:
print('数据库连接错误')
def close_conn(self):#关闭连接数据库
try:
if self.connection:#这里加个判断,如果已经关闭后就不进行关闭了
#关闭连接
self.connection.close()
except:
print('关闭连接错误')
def get_one(self):
#准备sql
sql = "select * from zc"
#找到cursor
cursor = self.connection.cursor()
#执行sql
cursor.execute(sql)
print(cursor.description)
#print(cursor.rowcount) #查询数据一共多少行
#拿到结果
rest = cursor.fetchone()
print(rest)
rest = dict(zip([k[0] for k in cursor.description],rest))
#处理数据
print(rest['name'])
#关闭连接
cursor.close()
self.close_conn()
def get_more(self):
a=1
def main():
obj =MysqlSearch()
obj.get_one()
if __name__ =='__main__':
main()
未完待续....持续更新