欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python数据库(pymysql)访问

程序员文章站 2022-03-28 17:51:31
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