一、操作数据库
使用pip install pymysql,安装pymysql模块,使用此模块连接MySQL数据库并操作数据库。
import pymysql host = 'ip地址' # 链接的主机ip user = 'db_username' # 用户名 password = 'db_password' # 用户密码,字符串 db = 'db_name' # 数据库名称 port = 3306 # int 类型,端口 # 创建数据库链接 connect = pymysql.connect(host=host, user=user, password=password, port=port,db=db, autocommit=True) # autocommit=True 设置自动提交 # cur = connet.cursor() # 建立游标 cur = connect.cursor(pymysql.cursors.DictCursor) # DictCursor 指定cur中数据类型为字典类型 try: cur.execute("INSERT INTO students (name, sex, age, class, addr) VALUES ('xiaohei', '男', '18', 'tmz', '北京');") # connet.commit() # 提交 更新、修改、删除都必须要提交 except Exception as e: connect.rollback() # 回滚 cur.execute('select * from students;') result = cur.fetchall() print(result) # print(cur.fetchmany(2)) # 获取前几条数据,返回的是二维数组。 # print(cur.fetchone()) # 获取1条数据,返回的是一个一维数组 # 有些类似文件中的指针,默认在文件最前面,随着读取,指针移动,使用fetchall读取后,在调用fetchone不能读取到数据 print(cur.fetchall()) for data in cur: # 遍历游标,来取结果中的数据 print(data) cur.close() # 切记要关闭游标和数据库链接 connect.close()
# 不指定cur中的数据类型,执行结果 ((1, 'mac book', 3, 19999.0), (3, '六神花露水', 30, 8.8), (5, '华为mete40', 20, 4000.0)) #指定cur中的数据类型为字典,执行结果 [{'id': 1, 'name': 'mac book', 'counts': 3, 'price': 19999.0}, {'id': 3, 'name': '六神花露水', 'counts': 30, 'price': 8.8}, {'id': 5, 'name': '华为mete40', 'counts': 20, 'price': 4000.0}]