Flask SQLALchemy 的使用
- 安装 Flask-SQLAlchemy
- 配置 Flask-SQLAlchemy
- 定义模型
- 创建数据库和表
- 插入和查询数据
- 更新和删除数据
- 迁移数据库
- 总结
Flask-SQLAlchemy 是一个 Flask 扩展,它简化了 Flask 应用中 SQLAlchemy 的使用。SQLAlchemy 是一个强大的 SQL 工具包和对象关系映射(ORM)工具,它支持多种数据库后台。使用 Flask-SQLAlchemy,你可以通过定义 Python 类来创建数据库表,并通过这些类的实例来操作数据库中的数据。
安装 Flask-SQLAlchemy
首先,你需要安装 Flask-SQLAlchemy。这可以通过 pip 完成:
pip install Flask-SQLAlchemy
- 1
配置 Flask-SQLAlchemy
在你的 Flask 应用中,你需要配置 Flask-SQLAlchemy。这通常在创建 Flask 应用对象后,配置数据库 URI(统一资源标识符)时完成。
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 禁用对对象修改的跟踪并减少开销
db = SQLAlchemy(app)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
定义模型
使用 Flask-SQLAlchemy 定义模型非常简单。你只需继承 并定义类属性即可。每个类属性都将映射到数据库表中的一列。
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.username}>'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
创建数据库和表
在应用首次运行时,你可能需要创建数据库和表。这可以通过调用 db.create_all()
方法完成。
with app.app_context():
db.create_all()
- 1
- 2
插入和查询数据
Flask-SQLAlchemy 提供了丰富的 API 来插入、查询、更新和删除数据。
插入数据
new_user = User(username='example', email='example@')
db.session.add(new_user)
db.session.commit()
- 1
- 2
- 3
查询数据
user = User.query.filter_by(username='example').first()
if user:
print(user.username)
- 1
- 2
- 3
更新和删除数据
更新数据
user.email = 'newemail@'
db.session.commit()
- 1
- 2
删除数据
db.session.delete(user)
db.session.commit()
- 1
- 2
迁移数据库
随着应用的发展,你可能需要修改数据库模型。Flask-Migrate 是一个 Flask 扩展,它建立在 Flask-SQLAlchemy 之上,允许你跟踪模型的变化并生成迁移脚本。
首先,安装 Flask-Migrate:
pip install Flask-Migrate
- 1
然后,在你的 Flask 应用中配置 Flask-Migrate 并使用它生成和应用迁移。
总结
Flask-SQLAlchemy 是一个强大的 Flask 扩展,它简化了在 Flask 应用中使用 SQLAlchemy 的过程。通过定义模型类,你可以轻松地创建数据库表,并通过这些类的实例来操作数据库中的数据。随着应用的增长,Flask-Migrate 可以帮助管理数据库模型的变更。