【基础】SQLAlchemy与SQLite:简化数据库操作
发布时间: 2024-06-27 10:06:19 阅读量: 94 订阅数: 112
![SQLAlchemy](https://images.ctfassets.net/piwi0eufbb2g/546MtSvPCdC4JMVrSPu3By/84454232f52784fd70b81a8d247e34f3/image.png)
# 2.1 连接数据库
SQLAlchemy 连接数据库需要使用 `create_engine()` 函数。该函数接收一个数据库连接字符串作为参数,用于指定数据库类型、主机、端口、数据库名称和凭据。
```python
from sqlalchemy import create_engine
# 创建一个 SQLite 内存数据库的连接引擎
engine = create_engine('sqlite:///:memory:')
# 创建一个连接到 MySQL 数据库的连接引擎
engine = create_engine('mysql+pymysql://user:password@host:port/database')
```
连接引擎创建后,可以使用 `connect()` 方法获取一个连接对象。连接对象用于执行查询和修改数据库。
```python
# 获取一个连接对象
connection = engine.connect()
```
# 2. SQLAlchemy基础操作
### 2.1 连接数据库
SQLAlchemy连接数据库的基本步骤如下:
1. 导入必要的模块:
```python
from sqlalchemy import create_engine
```
2. 创建一个引擎对象:
```python
engine = create_engine("数据库连接字符串")
```
其中,`数据库连接字符串`可以是以下几种形式:
* **SQLite:** `sqlite:///path/to/database.db`
* **MySQL:** `mysql+pymysql://user:password@host:port/database`
* **PostgreSQL:** `postgresql+psycopg2://user:password@host:port/database`
### 2.2 创建模型
SQLAlchemy使用模型来表示数据库中的表。模型是一个Python类,其属性对应于表的列。
以下是一个简单的模型示例:
```python
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
email = Column(String(100))
```
### 2.3 查询数据
SQLAlchemy使用`Session`对象来执行查询。`Session`对象表示与数据库的交互会话。
以下是如何使用`Session`对象查询数据:
```python
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()
users = session.query(User).all()
```
### 2.4 修改数据
SQLAlchemy使用`Session`对象来修改数据。以下是如何使用`Session`对象修改数据:
```python
user = session.query(User).get(1)
user.name = 'New Name'
session.commit()
```
# 3.1 关系映射
**一、概念简介**
关系映射是 SQLAlchemy 中一个重要的特性,它允许我们定义对象与数据库表之间的关系。通过关系映射,我们可以轻松地从对象中获取相关数据,并对相关数据进行操作。
**二、一对一关系**
一对一关系表示一个对象与另一个对象之间存在唯一关联。在 SQLAlch
0
0