梅州站改造高铁站,动漫网站建设总结,建设明星网站的目的论文,网站策划的最终体现是什么一、应用背景
在企业内部网络要使用python操作mysql数据库。然而#xff0c;python未自带访问MySQL数据库的函数库pymysql#xff0c;需要另外安装。网上有很多安装pymysql都需要互联网支持。本文主要阐述如何离线安装pymysql,并简要介绍pymysql如何进行mysql操作。
pymysq…一、应用背景
在企业内部网络要使用python操作mysql数据库。然而python未自带访问MySQL数据库的函数库pymysql需要另外安装。网上有很多安装pymysql都需要互联网支持。本文主要阐述如何离线安装pymysql,并简要介绍pymysql如何进行mysql操作。
pymysql是一个纯Python编写的MySQL数据库驱动基于Python DB-API 2.0规范。它不仅支持Python 2.x版本还支持Python 3.x版本因此在使用时需要根据自己的Python版本选择合适的pymysql安装包。
二、环境准备
1.pymysql的版本。本文使用的Python版本是python 3.9因此使用的pymysql的版本是0.9.3。
2.anaconda3的版本。本文的python运行环境是anaconda 2.3.1,python3.9。
3.IDE环境。本文采用anaconda自带的python IDE软件Spyder 5.2.2。
4.mysql的版本。MySQL版本是5.7由wampserver 2.5提供如果要使用mysql8.1版本可以参考文章MySql数据库5.7升级到8.1遇到的问题与解决方案_wamp升级mysql_hongdi的博客-CSDN博客
三、pymsql的安装
1.下载pymsql安装包
下载地址https://mirrors.cloud.tencent.com/pypi/packages/da/15/23ba6592920e21cb40eb0fe0ea002d2b6177beb1ca8a4c1add5a8f32754d/PyMySQL-0.9.3.tar.gz#sha256d8c059dcd81dedb85a9f034d5e22dcb4442c0b201908bede99e306d65ea7c8e7
这里也提供下其他版本的下载地址
PyMySQL-1.0.0.tar.gzhttps://mirrors.cloud.tencent.com/pypi/packages/2b/c4/3c3e7e598b1b490a2525068c22f397fda13f48623b7bd54fb209cd0ab774/PyMySQL-1.0.0.tar.gz#sha256b2508a7dc6b626210e52f711d2c2361d102d8d9b8b144e63b2512e748de1a49b
PyMySQL-1.1.0.tar.gzhttps://mirrors.cloud.tencent.com/pypi/packages/41/9d/ee68dee1c8821c839bb31e6e5f40e61035a5278f7c1307dde758f0c90452/PyMySQL-1.1.0.tar.gz#sha2564f13a7df8bf36a51e81dd9f3605fede45a4878fe02f9236349fd82a3f0612f96 2.安装pyMySQL
1将pymsql-0.9.3.tar.gz解压到anaconda安装目录下假设是E:\Anaconda3
2打开cmd命令行界面切换到E:\Anaconda3然后输入命令python setup.py install
3测试是否安装成功。在命令行中进入Python解释器,输入命令import pymysql回车不报错的化基本可以认为pymsql安装成功。
四、pymysql的开发介绍
一pymysql的编码流程 1.建立数据库连接 db pymysql.connect(参数) connect()函数的参数host主机地址或本地localhostport端口号默认3306) user用户名password密码 database数据库charaset编码方式默认utf8) 2.创建游标对象 cur db.cursor() 3.通过游标执行方法 cur.execute(sql语句) 4.提交到数据库 db.commit() 5.关闭游标对象 cur.close() 6.关闭数据库连接 db.close()
二pymysql中的查询
pymysql的增、删、改就比较简单只要将相应的insert、delete、update语句放到cur.execute中执行即可。对于查的方面pymysql就提供几种方法fetchone、fetchall、fetchmany下面分别进行介绍
1.fetchone方法
返回单条记录即一个元组如果没有数据则返回None.如:
cur.execute(select col1,col2, from mytable where id1);
arrcur.fetchone()
#通过arr[0]和arr[1]可以访问col1和col2的值
print(arr[0],arr[1])
注意多次循环使用cursor.fetchone()依次取得下一条结果直到为空。
2.fetchall方法 返回多条记录即多个元组如果没有结果,则返回 ()代码如下
cur.execute(select col1,col2, from mytable );
arrs cur.fetchall() for row in arrs: print(row) 3.fetchmany(n)方法
获取前n行数据代码如下
cur.execute(select col1,col2, from mytable );
arr3 cur.fetchmany(3) 获取前三行数据
三pymysql中占位符的使用
开发过程经常需要用到往sql语句中传递参数最简单的做法的通过拼接字符串的方式但这样的方式容易被进行sql注入攻击。所以在进行开发时建议通过传递参数的方式进行开发。这里主要介绍几种方法。
假设需要往mytable表中添加记录
正常的SQL语句sql “insert into mytable (col1,col2) values (‘user1’,19),(‘user2’,20);”
1.占位符法
sql “insert into mytable (col1,col2) values (‘%s’,%f),(‘%s’,%f);”
为了保持与sql语句格式完全匹配需要编写如下语句
sql “insert into mytable (col1,col2) values (‘%s’,%f),(‘%s’,%f);”%(user1,19,user2,20)
注意此种方式需要对字符串占位符加单引号%s
2.参数传递法
sql “insert into mytable (col1,col2) values (‘%s’,%f),(‘%s’,%f);”
在execute方法中除了传递sql还要传入对应参数列表如下语句
cur.execute(sql,[user1,19,user2,20]) 注意这里的第二个参数会按列表中的值顺次匹配
四完整的源码示例
import pymysqldb pymysql.connect(hostlocalhost,port3306,useruser,passwordpwd,databasemydatabase,charsetutf8)
cur db.cursor()
sql INSERT INTO interest (col1,col2) VALUES (%s,%f),(%s,%f);
try:cur.execute(sql, [user1,19,user2,20])db.commit()
except Exception as e:db.rollback()
finally:cur.close()db.close()