优草派  >   Python

怎么连接数据库操作sqlalchemy?

李明            来源:优草派

在进行数据库操作时,我们通常需要连接数据库。sqlalchemy是一种Python的ORM框架,提供了一种与数据库进行交互的方式。本文将从多个角度分析如何连接数据库操作sqlalchemy。

1. 安装sqlalchemy

怎么连接数据库操作sqlalchemy?

在使用sqlalchemy之前,需要先安装它。可以使用pip来安装:

```

pip install sqlalchemy

```

2. 连接数据库

在连接数据库之前,需要先确定数据库的类型、主机、端口、用户名和密码等信息。接下来,我们将介绍如何连接MySQL和SQLite数据库。

2.1 连接MySQL数据库

连接MySQL数据库需要使用`create_engine`函数创建一个数据库引擎对象。示例代码如下:

```python

from sqlalchemy import create_engine

# 连接MySQL数据库

engine = create_engine('mysql+pymysql://username:password@host:port/database_name')

```

其中,`username`和`password`分别是MySQL数据库的用户名和密码,`host`是MySQL数据库的主机地址,`port`是MySQL数据库的端口号,`database_name`是要连接的数据库名称。

2.2 连接SQLite数据库

连接SQLite数据库需要使用`create_engine`函数创建一个数据库引擎对象。示例代码如下:

```python

from sqlalchemy import create_engine

# 连接SQLite数据库

engine = create_engine('sqlite:///database_name.db')

```

其中,`database_name.db`是要连接的SQLite数据库文件名。

3. 建立映射关系

在进行数据库操作之前,需要先建立Python对象和数据库表之间的映射关系。可以使用`declarative_base`函数创建一个基类,并在此基类上定义Python对象和数据库表之间的映射关系。示例代码如下:

```python

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy import Column, Integer, String

Base = declarative_base()

class User(Base):

__tablename__ = 'users'

id = Column(Integer, primary_key=True)

name = Column(String(50))

age = Column(Integer)

```

在上面的示例代码中,我们定义了一个名为`User`的Python对象,并将其映射到名为`users`的数据库表中。

4. 创建会话

在建立映射关系之后,需要创建一个会话对象用于与数据库进行交互。可以使用`sessionmaker`函数创建一个会话工厂,并在此工厂上创建一个会话对象。示例代码如下:

```python

from sqlalchemy.orm import sessionmaker

# 创建会话工厂

Session = sessionmaker(bind=engine)

# 创建会话对象

session = Session()

```

在上面的示例代码中,我们创建了一个名为`Session`的会话工厂,并将其绑定到前面创建的数据库引擎对象上。然后,我们在此会话工厂上创建了一个名为`session`的会话对象。

5. 数据库操作

在创建会话对象之后,就可以对数据库进行增删改查等操作了。以下代码展示了如何向数据库中添加一条记录:

```python

# 创建一条记录

user = User(name='Tom', age=18)

# 将记录添加到会话中

session.add(user)

# 提交会话

session.commit()

```

在上面的示例代码中,我们创建了一条名为`Tom`、年龄为18的记录,并将其添加到会话中。然后,我们提交了此会话,使其生效。

6. 关闭会话

在数据库操作完成后,需要关闭会话以释放资源。以下代码展示了如何关闭会话:

```python

# 关闭会话

session.close()

```

在上面的示例代码中,我们关闭了前面创建的`session`会话对象。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行