python数据库(pymysql)访问
程序员文章站
2022-07-01 23:36:45
pymysql官网:https://www.python.org/dev/peps/pep-0249/安装:pip install pymysqlimport pymysql #导入模块pymysql.apilevel #api等级pymysql.threadsafety #线程安全级别pymysql.paramstyle='qmark' #设置参数格式pymysql.paramstyle...
pymysql官网:https://www.python.org/dev/peps/pep-0249/
安装:
pip install pymysql
导入模块
import pymysql
api等级
pymysql.apilevel
2.0字符串常量,表示支持的DB API版本
线程安全级别
pymysql.threadsafety
级别 | 含义 |
---|---|
0 | 线程可能无法共享模块。 |
1 | 线程可以共享模块,但不能共享连接。 |
2 | 线程可以共享模块和连接。 |
3 | 线程可以共享模块,连接和游标。 |
参数格式
pymysql.paramstyle='qmark' #设置参数格式
pymysql.paramstyle #输出参数格式--默认:'pyformat'
名称 | 含义 |
---|---|
qmark | 问号样式,例如:WHERE name=? |
numeric | 数字的位置样式,例如:WHERE name=:1 |
named | 命名样式,例如:name=:name |
format | ANSI C printf 格式代码,例如:WHERE name=%s |
pyformat | Python扩展格式代码,例如:WHERE name=%(name)s |
获取连接对象
db= pymysql.connect('localhost', user='xx', password='xx')
cursor= db.cursor() #获取游标
sql(insert/delete/select/update)语句
try:
sql= '''insert into employee(
first_name, last_name, age, sex, income)
values(%s,%s,%s,%s,%s)'''
#执行语句
cursor.execute(sql , ('mac','mohan','20','m','20000'))
#提交到数据库执行
db.commit() #事务提交
print('success')
except Exception as e:
db.rollback()
print('fail:', e)
db.close()
封装:with -> 容器
#定义上下文管理器 ,连接后自动关闭连接
import contextlib
@contextlib.contextmanager
def mysql(host='localhost', port=3306, user='root', passwd='root',db='bigdata',charset='utf8'):
conn= pymysql.connect(host= host, port= port, user= user, passwd= passwd, db= db, charset= charset)
cursor= conn.cursor()
try:
yield cursor #生产 yield
finally:
conn.commit()
cursor.close()
conn.close()
实例
with mysql() as cursor:
rows= cursor.execute('select * from employee')
results = cursor.fetchall()
for row in results:
fname= row[0]
lname= row[1]
age= row[2]
sex= row[3]
income= row[4]
print('fname=%s,lname=%s,age=%d,sex=%s,income=%d' % (fname, lname, age, sex, income))
更多操作移步官网,以上内容仅此参考
本文地址:https://blog.csdn.net/light_bulb/article/details/107674151