python与数据库的连接
python3不支持mysqldb(python2支持),使用pymysql代替
但也有说法 https://blog.csdn.net/liuweiyuxiang/article/details/80666773
这里用pymysql
操作流程
- 创建connection
- 获取cursor
- 执行增删改查的操作
- 处理数据
- 关闭cursor
- 关闭connection
创建connection
import pymysql.cursors HOST = '127.0.0.1' PORT = 3306 USER = 'root' PASSWD = 'root' DB = 'hxx_test' CHARSET = 'utf8' #pymysql.cursors.DictCursor connection = pymysql.connect(host=HOST, port=PORT, user=USER, passwd=PASSWD, db=DB, charset=CHARSET)
返回的是cursor对象(游标对象)用于执行查询和获取结果
常用参数说明
获取cursor对象
cursor = connection.cursor()
典例
import pymysql.cursors HOST = '127.0.0.1' PORT = 3306 USER = 'root' PASSWD = 'root' DB = 'hxx_test' CHARSET = 'utf8' #pymysql.cursors.DictCursor connection = pymysql.connect(host=HOST, port=PORT, user=USER, passwd=PASSWD, db=DB, charset=CHARSET) try: cursor = connection.cursor() sql = "select * from my_first" cursor.execute(sql) result = cursor.fetchall() for data in result: print(data) except Exception:print("查询失败!") cursor.close() connection.close()
import pymysql.cursors conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='root', database='hxx_test', charset='utf8' ) cursor = conn.cursor() #解释一下, 这是在操作hxx_test数据库中的my_first这张表 # 插入sql; sql_insert = "insert into my_first (fds,fggtrh,qq,kkk) values (7,8,9,10)" # 更新sql; sql_update = "update my_first set qq = 99 where fds=33" # 删除sql; sql_delete = "delete from my_first where fds = 1" # 把一个事务放到一个try块里,如果出现异常就回滚; try: # 开启事务; conn.begin() cursor.execute(sql_insert) cursor.execute(sql_update) cursor.execute(sql_delete) # 确认提交; conn.commit() except Exception as e: # 若有异常就回滚; conn.rollback() cursor.close() conn.close()
操作的那个数据库是这样的