> 文章列表 > flask 数据库

flask 数据库

flask 数据库

什么是 Flask 数据库

Flask 是一个用 Python 编写的轻量级 Web 应用框架。它不内置数据库抽象层(ORM),但它支持跟多种第三方 ORM 库集成。Flask 框架可以使用多种数据库如 SQLite、MySQL 和 PostgreSQL 等,其中 SQLite 是其默认数据库。

如何在 Flask 中使用数据库?

首先,需要安装一个适合自己应用的数据库,不同的应用适合不同的数据库。其次,在 Flask 中使用数据库时,需要先安装和配置一个适合自己应用的数据库模块,如 Flask-SQLAlchemy。

在使用 Flask-SQLAlchemy 时,需要首先导入相关模块:from flask_sqlalchemy import SQLAlchemy。然后,需要实例化一个 SQLAlchemy 对象:db = SQLAlchemy(app)。接下来,就可以定义数据库模型了。

Flask-SQLAlchemy 的数据库模型

定义数据库模型就是定义 Python 类,类的属性对应数据库表的列,类的表名对应数据库表名。

例如,代码如下所示:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)
    password = db.Column(db.String(80))

上述代码定义了一个用户类,它有四个属性:id、username、email 和 password。其中,id 是一个整形的主键,username 和 email 列的值不能重复,password 存储密码。

Flask-SQLAlchemy 的数据库操作

数据库的操作可以通过定义类方法或实例方法来实现。在 SQLAlchemy 中,数据库的操作主要包括增加(add)、查询(query)、修改(update)和删除(delete)。

例如,添加数据可以通过实例化一个 User 对象,并调用 db.session.add() 方法来实现,如下所示:

user = User(username='tom', email='tom@example.com', password='123456')
db.session.add(user)
db.session.commit()

修改数据可以通过查询条件查询出要修改的数据,然后调用实例方法修改数据即可,例如:

User.query.filter_by(username='tom').update({'username': 'jerry'})
db.session.commit()

删除数据可以通过查询条件查询出要删除的数据,然后调用实例方法删除数据,例如:

user = User.query.filter_by(username='tom').first()
db.session.delete(user)
db.session.commit()

Flask-SQLAlchemy 的数据迁移

在使用 Flask-SQLAlchemy 时,由于模型的定义会发生变化,所以需要数据迁移来保证数据库的正确性。数据迁移就是将新模型应用到现有数据库中的过程。

数据迁移通常使用一个数据迁移框架实现,如 Alembic。使用 Alembic 进行数据迁移,通常需要执行以下步骤:

1. 安装 Alembic:pip install alembic

2. 初始化 Alembic:alembic init

3. 编辑 alembic.ini 文件,配置数据库连接。

4. 使用 Alembic 自动生成数据迁移脚本:alembic revision --autogenerate -m "init"

5. 执行数据迁移脚本:alembic upgrade head

在数据迁移过程中,需要注意对数据库的备份,以免误操作导致数据丢失。

总结

Flask 是一个轻量级 Web 框架,可以使用多种第三方 ORM 库来支持数据库操作。Flask-SQLAlchemy 是其中一个简单易用的 ORM 库,它提供了方便的数据库模型定义和操作方式,很适合小型 Web 应用的开发。

同时,在进行数据库操作时,需要注意数据库的安全性和正确性,避免出现数据泄露和数据损坏等问题。在使用数据迁移时,需要牢记备份原则,以保障数据的完整性。