python操作数据库的高级写法
时间: 2023-06-29 20:18:04 浏览: 52
Python 操作数据库的高级写法一般采用 ORM(Object-Relational Mapping,对象关系映射)框架,这种框架可以将数据库表映射为 Python 对象,从而实现面向对象的数据库操作。常见的 Python ORM 框架有 Django ORM、SQLAlchemy 等。
下面以 SQLAlchemy 为例,介绍 Python 操作数据库的高级写法:
首先,我们需要安装 SQLAlchemy 模块,可以使用 pip 命令进行安装:
```
pip install sqlalchemy
```
接着,我们需要连接数据库并定义数据库表结构。假设我们有一个 users 表,包含 id、username 和 password 三个字段,我们可以使用 SQLAlchemy 定义这个表的映射类:
```python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
# 创建连接引擎
engine = create_engine('mysql+pymysql://root:password@localhost:3306/test', echo=True)
# 创建基类
Base = declarative_base()
# 定义映射类
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True, autoincrement=True)
username = Column(String(50), nullable=False)
password = Column(String(50), nullable=False)
```
在上述代码中,我们使用 `create_engine()` 方法创建数据库连接引擎,其中需要指定数据库的连接信息。然后,我们使用 `declarative_base()` 方法创建基类,以便后续定义映射类。最后,我们定义了 `User` 类,它继承自 `Base` 类,表示 users 表的映射类,包含 id、username 和 password 三个属性。
接着,我们可以使用 SQLAlchemy 提供的 API 对数据库进行操作,例如:
```python
from sqlalchemy.orm import sessionmaker
# 创建会话工厂
Session = sessionmaker(bind=engine)
# 创建会话对象
session = Session()
# 查询所有用户
users = session.query(User).all()
# 输出查询结果
for user in users:
print(user.id, user.username, user.password)
# 关闭会话
session.close()
```
在上述代码中,我们首先使用 `sessionmaker()` 方法创建会话工厂,然后使用 `Session()` 方法创建会话对象。接着,我们使用 `session.query()` 方法执行查询操作,并使用 `all()` 方法获取查询结果。最后,我们输出查询结果,并使用 `session.close()` 方法关闭会话。
除了查询操作之外,SQLAlchemy 还提供了一系列的方法,用于执行插入、更新、删除等操作,例如:
```python
# 创建新用户
new_user = User(username='admin', password='123456')
# 添加到数据库
session.add(new_user)
# 提交事务
session.commit()
```
在上述代码中,我们首先创建了一个新的 `User` 对象,然后使用 `session.add()` 方法将其添加到数据库中,并使用 `session.commit()` 方法提交事务,以保存修改。
综上所述,Python 操作数据库的高级写法采用 ORM 框架,可以将数据库表映射为 Python 对象,从而实现面向对象的数据库操作,使得代码更加简洁、优雅、安全。