唐山市网站建设_网站建设公司_RESTful_seo优化
2026/1/11 2:28:40 网站建设 项目流程

Python高级

文章目录
  • Python高级
    • python操作数据库mysql-connector
      • demo_mysql_test.py:
    • pyMysql

python操作数据库mysql-connector

本章节为大家介绍使用mysql-connector来连接使用 MySQL,mysql-connectorMySQL官方提供的驱动器。

可以使用pip命令来安装mysql-connector

python -m pip install mysql-connector

使用以下代码测试 mysql-connector 是否安装成功:

demo_mysql_test.py:

import mysql.connector

执行以上代码,如果没有产生错误,表明安装成功。

注**意:**如果你的 MySQL 是 8.0 版本,密码插件验证方式发生了变化,早期版本为 mysql_native_password,8.0 版本为 caching_sha2_password,所以需要做些改变:

先修改 my.ini 配置:

[mysqld] default_authentication_plugin=mysql_native_password

然后在 mysql 下执行以下命令来修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

# mysql-connect test import mysql.connector mysqlDb = mysql.connector.connect( host='localhost', user='root', password='Lh_198571', database = 'db_python' ) # 创建数据库 def createDb(mysqlDb): cursor = mysqlDb.cursor() cursor.execute("create database db_python2") print('数据库创建成功') # createDb(mysqlDb) # 查看数据库 def showDb(mysqlDb): cursor = mysqlDb.cursor() cursor.execute("SHOW DATABASES") for i in cursor: print(i) # showDb(mysqlDb) # 创建表 # 创建表必须选中数据库才能创建,因此在创建表时,必须在connect中添加database指定数据库 def createTable(mysqlDb): cursor = mysqlDb.cursor() cursor.execute("CREATE TABLE tb_user(id int not null primary key auto_increment,name varchar(20),sex int)") # createTable(mysqlDb) # 执行insert语句 def insert(mysqlDb): cursor = mysqlDb.cursor() try: cursor.execute("INSERT INTO tb_user(name,sex) values('sofwin2',0)") print('insert成功') except: print('插入异常') finally: mysqlDb.commit() # insert(mysqlDb) # 查询语句 def query(mysqlDb): cursor = mysqlDb.cursor() cursor.execute("select * from tb_user") users = cursor.fetchall() for user in users: print(user[0]) print(user[1]) print(user[2]) query(mysqlDb) # 将查询语结果封装到list中,每个标位为dict def queryAll(mysqlDb): cursor = mysqlDb.cursor() cursor.execute("select * from tb_user") users = cursor.fetchall() userList=[] for user in users: u = {} u['id'] = user[0] u['name'] = user[1] u['sex'] = user[2] userList.append(u) print(userList) queryAll(mysqlDb) # 定义user对象 class User: id = 0 name = '' sex = 0 def __init__(self,id, name, sex): self.id = id self.name = name self.sex = sex def __str__(self): print('用户id:'+ str(self.id)+',name:'+self.name+',sex:'+ str(self.sex)) # list中封装User对象 def queryAll2(mysqlDb): cursor = mysqlDb.cursor() cursor.execute("select * from tb_user") users = cursor.fetchall() userList=[] for x in users: u = User(x[0],x[1],x[2]) userList.append(u) print(userList.__str__()) queryAll2(mysqlDb) # 修改 def update(mysqlDb): cursor = mysqlDb.cursor() try: cursor.execute("update tb_user set name='helloWorld' where id = 2") finally: mysqlDb.commit() update(mysqlDb) # delete语句 def delete(mysqlDb): cursor = mysqlDb.cursor() try: cursor.execute("delete from tb_user where id = 3") finally: mysqlDb.commit() delete(mysqlDb) queryAll(mysqlDb)

pyMysql

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

$ pip install PyMySQL # pyMysql import pymysql db = pymysql.connect( host='localhost', user='root', password='Lh_198571', database='db_python' ) # 查询 def query(): # 创建游标对象 cursor = db.cursor() # 执行查询方法 cursor.execute("select * from tb_user") # 获取到元组 result = cursor.fetchall() print(type(result)) print(result) # 插入 第一个参数不能为默认参数 def insert(name, sex, mdb=db): cursor = mdb.cursor() try: print("insert into tb_user(name,sex) values('" + name + "'," + str(sex) + ")") cursor.execute("insert into tb_user(name,sex) values('" + name + "'," + str(sex) + ")") finally: mdb.commit() insert('a1', 10) # 删除 def delete(id, mdb=db): cursor = mdb.cursor() try: cursor.execute("delete from tb_user where id = 5") finally: mdb.commit() delete(5) # 修改 def update(id, mdb=db): cursor = mdb.cursor() try: cursor.execute("update tb_user set name ='aaaaa' where id=" + str(id)) finally: mdb.commit() # 根据id 查询一调数据 def getOne(id, mdb = db): cursor = mdb.cursor() cursor.execute("select * from tb_user where id=" + str(id)) result = cursor.fetchone() # tuple 元组 print(type(result)) print(result) getOne(4) update(6) query()

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询