第6章:数据库集成
6.1 数据库的选择和配置
在Flask中集成数据库,首先需要选择一个数据库系统。常见的选择包括SQLite、MySQL、PostgreSQL等。选择后,需要配置数据库连接字符串。
示例代码:配置数据库
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db' # 配置SQLite数据库
db = SQLAlchemy(app)
6.2 SQLAlchemy ORM简介
SQLAlchemy是一个流行的SQL工具包和对象关系映射(ORM)系统,可以用于Flask应用中。
示例代码:安装SQLAlchemy
pip install Flask-SQLAlchemy
6.3 数据模型的创建
在Flask中使用SQLAlchemy定义数据模型,这些模型将映射到数据库表。
示例代码:定义数据模型
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.username}>'
6.4 数据库迁移和版本控制
数据库迁移是修改数据库结构(如添加、删除表或字段)的过程。Flask-Migrate是一个扩展,用于处理数据库迁移。
示例代码:安装Flask-Migrate
pip install Flask-Migrate
示例代码:初始化Flask-Migrate
from flask_migrate import Migrate
migrate = Migrate(app, db)
示例代码:创建和应用迁移
flask db init # 初始化迁移目录
flask db migrate -m "Initial migration." # 生成迁移脚本
flask db upgrade # 应用迁移到数据库
6.5 操作数据库
使用SQLAlchemy ORM,您可以轻松地添加、查询、更新和删除数据库记录。
示例代码:添加新用户
new_user = User(username='JohnDoe', email='john@example.com')
db.session.add(new_user)
db.session.commit()
示例代码:查询用户
user = User.query.filter_by(username='JohnDoe').first()
6.6 总结
本章介绍了如何在Flask应用中集成数据库,包括选择数据库、配置SQLAlchemy、创建数据模型、以及使用Flask-Migrate进行数据库迁移和版本控制。