【Django杂记】django pymysql连接mysql
2022/6/1 2:51:43
本文主要是介绍【Django杂记】django pymysql连接mysql,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PyMySQL安装
pip install pymysql
基本使用
import pymysql # 连接数据库 conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 获取游标 cursor = conn.cursor() # sql语句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8; """ # 执行sql语句 cursor.execute(sql) # 关闭游标 cursor.close() # 关闭数据库连接 conn.close()
返回字典格式数据
import pymysql # 连接数据库 conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 获取可以将结果作为字典返回的游标 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # sql语句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8; """ # 执行sql语句 cursor.execute(sql) # 关闭游标 cursor.close() # 关闭数据库连接 conn.close()
增删改查操作
增
import pymysql # 连接数据库 conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 获取游标 cursor = conn.cursor() # sql语句 sql = """ INSERT INTO USER1(name, age) VALUES (%s, %s); """ username = 'alex' age = 18 # 执行sql语句 cursor.execute(sql, [username. age]) # 提交事务 conn.commit() # 关闭游标 cursor.close() # 关闭数据库连接 conn.close()
插入数据失败回滚
# 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 获取光标 cursor = conn.cursor() # sql语句 sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" username = "Alex" age = 18 try: # 执行SQL语句 cursor.execute(sql, [username, age]) # 提交事务 conn.commit() except Exception as e: # 有异常,回滚事务 conn.rollback() # 关闭游标 cursor.close() # 关闭数据库连接 conn.close()
获取插入数据的ID(关联操作时用到)
# 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 获取游标 cursor = conn.cursor() # sql语句 sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" username = "Alex" age = 18 # 执行SQL语句 try: # 执行SQL语句 cursor.execute(sql, [username, age]) # 提交事务 conn.commit() # 提交之后,获取刚插入的数据的ID last_id = cursor.lastrowid except Exception as e: # 有异常,回滚事务 conn.rollback() # 关闭游标 cursor.close() # 关闭数据库连接 conn.close()
批量执行
# 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" data = [("Alex", 18), ("Egon", 20), ("Yuan", 21)] try: # 批量执行多条插入SQL语句 cursor.executemany(sql, data) # 提交事务 conn.commit() except Exception as e: # 有异常,回滚事务 conn.rollback() cursor.close() conn.close()
删
# 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() sql = "DELETE FROM USER1 WHERE id=%s;" try: cursor.execute(sql, [4]) # 提交事务 conn.commit() except Exception as e: # 有异常,回滚事务 conn.rollback() cursor.close() conn.close()
改
# 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() # 修改数据的SQL语句 sql = "UPDATE USER1 SET age=%s WHERE name=%s;" username = "Alex" age = 80 try: # 执行SQL语句 cursor.execute(sql, [age, username]) # 提交事务 conn.commit() except Exception as e: # 有异常,回滚事务 conn.rollback() cursor.close() conn.close()
查
#查询操作 import pymysql #导入 pymysql #打开数据库连接 conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 使用cursor()方法获取操作游标 cur = conn.cursor() #1.查询操作 # 编写sql 查询语句 user 对应我的表名 sql = "select * from user" try: cur.execute(sql) #执行sql语句 results = cur.fetchall() #获取查询的所有记录 print("id","name","password") #遍历结果 for row in results : id = row[0] name = row[1] password = row[2] print(id,name,password) except Exception as e: raise e finally: db.close() #关闭连接
查询单条数据
# 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() # 查询数据的SQL语句 sql = "SELECT id,name,age from USER1 WHERE id=1;" # 执行SQL语句 cursor.execute(sql) # 获取单条查询数据 ret = cursor.fetchone() cursor.close() conn.close() # 打印下查询结果 print(ret)
查询多条数据
# 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', charset='utf8' ) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() # 查询数据的SQL语句 sql = "SELECT id,name,age from USER1;" # 执行SQL语句 cursor.execute(sql) # 获取多条查询数据 ret = cursor.fetchall() cursor.close() conn.close() # 打印下查询结果 print(ret)
进阶用法
# 可以获取指定数量的数据 cursor.fetchmany(3) # 光标按绝对位置移动1 cursor.scroll(1, mode="absolute") # 光标按照相对位置(当前位置)移动1 cursor.scroll(1, mode="relative")
这篇关于【Django杂记】django pymysql连接mysql的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程