第9天:数据库集成(基础)
数据库集成简介
数据库是Web应用中存储和检索数据的核心组件。Flask本身不提供ORM(对象关系映射)支持,但可以通过扩展如Flask-SQLAlchemy来实现。
为什么使用SQLAlchemy?
SQLAlchemy是一个Python的ORM工具,它提供了一个高层的ORM以及底层的SQL表达式语言,用于与数据库进行交互。
安装SQLAlchemy
- 安装Flask-SQLAlchemy:
pip install Flask-SQLAlchemy
配置Flask应用使用SQLAlchemy
- 初始化SQLAlchemy:
- 在Flask应用中创建SQLAlchemy实例。
示例初始化SQLAlchemy:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///yourdatabase.db' # 配置数据库连接字符串
db = SQLAlchemy(app) # 初始化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 '<User %r>' % self.username
迁移管理
对于数据库迁移,Flask推荐使用Flask-Migrate,它是SQLAlchemy迁移工具的Flask包装。
安装Flask-Migrate
- 安装Flask-Migrate:
pip install Flask-Migrate
初始化Flask-Migrate
- 集成Flask-Migrate:
- 初始化Flask-Migrate以管理数据库迁移。
示例集成Flask-Migrate:
from flask_migrate import Migrate
migrate = Migrate(app, db)
操作数据库
- 创建数据库:
- 使用SQLAlchemy创建数据库。
示例创建数据库:
with app.app_context():
db.create_all()
- 添加数据:
- 添加数据到数据库。
示例添加数据:
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()
if user:
print(user.email)
会话和事务
- 管理会话和事务:
- Flask使用会话来追踪对数据库的更改,并在事务中提交这些更改。
结语
今天,我们学习了如何在Flask中集成数据库,并使用SQLAlchemy和Flask-Migrate来管理数据库模型和迁移。理解数据库集成对于构建数据驱动的Web应用至关重要。
记得在你的Flask应用中实现数据库集成,并尝试创建、查询和更新数据。这是一个很好的实践机会,可以帮助你加深对数据库操作的理解。