优草派 > 问答 > Python

Python实现数据库编程方法详解

作者:lanyu32     

随着数据的不断增长和应用场景的不断拓展,数据库的重要性日益凸显。作为一种高级编程语言,Python已经成为数据库编程中的重要工具。本文将从多个角度详细介绍Python实现数据库编程的方法。

一、Python数据库编程的基础知识

Python支持多种数据库,包括MySQL、Oracle、SQL Server等。在开始编程前,需要安装相应的数据库驱动程序。以MySQL为例,可以使用Python自带的mysql-connector包或者第三方的pymysql包进行连接。连接数据库的代码如下:

```

import mysql.connector

mydb = mysql.connector.connect(host="localhost", user="root", password="password", database="test")

```

其中,host为主机名,user为用户名,password为密码,database为数据库名。连接成功后,就可以进行数据库的操作。

二、Python数据库操作

Python数据库操作主要包括增删改查四个方面。下面以MySQL为例,介绍具体的操作方法。

1. 插入数据

使用INSERT语句可以向数据库中插入数据。例如,向student表中插入一条记录,代码如下:

```

import mysql.connector

mydb = mysql.connector.connect(host="localhost", user="root", password="password", database="test")

mycursor = mydb.cursor()

sql = "INSERT INTO student (name, age, gender) VALUES (%s, %s, %s)"

val = ("张三", 18, "男")

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "条记录插入成功")

```

其中,%s为占位符,val为具体的值。执行execute()函数后,需要调用commit()函数提交事务,否则数据不会被保存。

2. 删除数据

使用DELETE语句可以从数据库中删除数据。例如,删除student表中名字为“张三”的记录,代码如下:

```

import mysql.connector

mydb = mysql.connector.connect(host="localhost", user="root", password="password", database="test")

mycursor = mydb.cursor()

sql = "DELETE FROM student WHERE name = '张三'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "条记录删除成功")

```

其中,WHERE子句用于指定删除的条件。

3. 修改数据

使用UPDATE语句可以修改数据库中的数据。例如,将student表中名字为“李四”的年龄改为20岁,代码如下:

```

import mysql.connector

mydb = mysql.connector.connect(host="localhost", user="root", password="password", database="test")

mycursor = mydb.cursor()

sql = "UPDATE student SET age = 20 WHERE name = '李四'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "条记录修改成功")

```

其中,SET子句用于指定要修改的列和新的值。

4. 查询数据

使用SELECT语句可以从数据库中查询数据。例如,查询student表中所有记录,代码如下:

```

import mysql.connector

mydb = mysql.connector.connect(host="localhost", user="root", password="password", database="test")

mycursor = mydb.cursor()

sql = "SELECT * FROM student"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

print(x)

```

其中,fetchall()函数用于获取所有的查询结果。

三、Python数据库连接池

在并发访问数据库时,频繁地打开和关闭数据库连接会导致数据库性能下降。为了解决这个问题,可以使用数据库连接池。Python中的DBUtils模块提供了连接池的实现。使用连接池的代码如下:

```

from dbutils.pooled_db import PooledDB

import mysql.connector

pool = PooledDB(mysql.connector, host="localhost", user="root", password="password", database="test", maxconnections=10)

conn = pool.connection()

cursor = conn.cursor()

sql = "SELECT * FROM student"

cursor.execute(sql)

result = cursor.fetchall()

for x in result:

print(x)

conn.close()

```

其中,maxconnections参数指定连接池的最大连接数,当连接数超过最大连接数时,连接池会自动等待。

四、Python ORM框架

ORM(Object-Relational Mapping)是一种将对象模型和关系数据库模型进行映射的技术。Python中的ORM框架可以使数据库编程更加简洁、易于维护。常用的Python ORM框架包括SQLAlchemy、Django ORM等。

以SQLAlchemy为例,使用ORM框架的代码如下:

```

from sqlalchemy import create_engine, Column, Integer, String

from sqlalchemy.orm import sessionmaker

from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('mysql+mysqlconnector://root:password@localhost:3306/test')

Base = declarative_base()

class Student(Base):

__tablename__ = 'student'

id = Column(Integer, primary_key=True)

name = Column(String(20))

age = Column(Integer)

gender = Column(String(10))

Session = sessionmaker(bind=engine)

session = Session()

student = Student(name='张三', age=18, gender='男')

session.add(student)

session.commit()

```

其中,先定义了一个Student类,该类继承了declarative_base(),定义了表名和字段名。使用sessionmaker()函数创建一个session,然后向student表中插入一条记录。

五、总结

本文从Python数据库编程的基础知识、数据库操作、连接池和ORM框架四个方面详细介绍了Python实现数据库编程的方法。在实际应用中,需要根据具体的需求选择合适的方法。

5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
相关问题
sql判断字段是否存在
python键值对
for循环可以遍历字典吗
怎么使用vscode
查看更多

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024