关键词

flask框架使用orm连接数据库的方法示例

当使用 Flask 框架时,ORM(对象关系映射)是连接数据库的一个好选择。 SQLAlchemy 是一个流行的 ORM 库,它提供了方便的 ORM 接口,可以让我们更轻松地在 Flask 中使用数据库。

下面我们来讲解一下 Flask 框架使用 ORM 连接数据库的方法示例。

环境设置

在使用 Flask 和 SQLAlchemy 之前,我们需要安装 Python 以及 Flask 和 SQLAlchemy。可以使用以下命令安装 Flask 和 SQLAlchemy:

pip install flask
pip install sqlalchemy

在安装完毕后,我们可以导入这两个库:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

配置 Flask 应用

下一步是配置 Flask 应用。具体地说,我们需要:

  1. 创建 Flask 实例
  2. 设置数据库 URI
  3. 创建 SQLAlchemy 实例
  4. 将 SQLAlchemy 与 Flask 应用连接起来

首先,我们创建 Flask 实例:

app = Flask(__name__)

接下来,我们需要设置数据库 URI。URI(Uniform Resource Identifier)是一个指向数据库的 URL,它可以唯一地识别一个数据库。

在本例中,我们使用 MySQL 数据库。在设置数据库 URI 时,需要包括用户名,密码,主机名,端口和数据库名。示例代码如下:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@hostname:port/databasename'

请注意,这里的“username”和“password”应替换为实际的用户名和密码,而“hostname”和“port”应替换为实际的主机名和端口。最后,“databasename”应替换为实际的数据库名。

接下来,我们需要创建 SQLAlchemy 实例并将其与 Flask 应用连接起来:

db = SQLAlchemy(app)

定义模型

接下来,我们需要定义一个模型来表示数据库中的表。在本例中,我们将创建一个名为“User”的表,其中包含“id”和“name”字段。

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), nullable=False)

这里,“db.Model”是 SQLAlchemy 中的基类,表示一个模型类。然后,我们定义了两个类变量:“id”和“name”,并使用了两个元组来设置它们的属性。

在我们定义完模型之后,我们需要执行下面的命令来创建数据库表:

db.create_all()

实现数据操作

在我们成功定义了数据库模型之后,我们可以开始实现对数据库的操作。下面是两个示例:

示例 1:插入和查询数据

在这个示例中,我们将向数据库中添加一条数据,然后从数据库中查询该数据,并将其打印到控制台上。

# 创建 User 对象
user = User(name='wupc')

# 将 User 对象添加到数据库
db.session.add(user)
db.session.commit()

# 从数据库中查询 User 对象
user = User.query.filter_by(name='wupc').first()

# 打印 User 对象的属性
print(user.id)
print(user.name)

在这个示例中,我们首先创建了一个具有“name”属性的 User 对象。然后,我们使用“db.session.add()”将其添加到数据库中,并使用“db.session.commit()”提交事务。

接下来,我们使用“User.query.filter_by()”查询具有“name”属性的 User 对象,并将其保存在一个名为“user”的变量中。最后,我们打印了“user”的 ID 和名称属性。

示例 2:更新和删除数据

在这个示例中,我们将从数据库中查询一条数据,然后更新其“name”属性。然后,我们将该数据从数据库中删除。

# 从数据库中查询 User 对象
user = User.query.filter_by(name='wupc').first()

# 更新 User 对象的属性
user.name = 'wupc2'
db.session.commit()

# 从数据库中删除 User 对象
db.session.delete(user)
db.session.commit()

在这个示例中,我们首先使用“User.query.filter_by()”查询具有“name”属性的 User 对象,并将其保存在一个名为“user”的变量中。

然后,我们更新了“user”的“name”属性,使用“db.session.commit()”提交了事务。最后,我们使用“db.session.delete()”从数据库中删除了“user”的对象,并再次使用“db.session.commit()”提交了事务。

手动关闭数据库连接

在使用 SQLAlchemy 连接数据库时,我们需要手动关闭连接以防止资源泄漏。我们可以在 Flask 应用关闭时自动关闭 SQLAlchemy 连接。

@app.teardown_appcontext
def shutdown_session(exception=None):
    db.session.remove()

在这个代码片段中,“@app.teardown_appcontext”叫做装饰器,可以在 Flask 应用上下文结束时调用其下面的函数。“shutdown_session()”函数将关闭 SQLAlchemy 连接。

以上就是 Flask 框架使用 ORM 连接数据库的方法示例。通过这些步骤,我们可以很容易地在 Flask 应用程序中使用 SQLAlchemy 连接到数据库,并执行各种 CRUD 操作。

本文链接:http://task.lmcjl.com/news/15529.html

展开阅读全文