Flask - SQLAlchemy #

一、安装与配置 #

1.1 安装 #

bash
pip install flask-sqlalchemy

1.2 基本配置 #

python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

1.3 配置选项 #

选项 说明
SQLALCHEMY_DATABASE_URI 数据库连接URI
SQLALCHEMY_TRACK_MODIFICATIONS 是否追踪修改
SQLALCHEMY_ECHO 是否输出SQL语句
SQLALCHEMY_POOL_SIZE 连接池大小
SQLALCHEMY_POOL_TIMEOUT 连接超时时间

二、数据库连接 #

2.1 SQLite #

python
# 相对路径
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'

# 绝对路径
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////path/to/app.db'

# 内存数据库
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:'

2.2 MySQL #

python
# 使用pymysql
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://user:password@localhost/dbname'

# 使用mysqlclient
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:password@localhost/dbname'

2.3 PostgreSQL #

python
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://user:password@localhost/dbname'

# 使用psycopg2
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://user:password@localhost/dbname'

三、初始化方式 #

3.1 直接初始化 #

python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'

db = SQLAlchemy(app)

3.2 工厂模式 #

python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

def create_app():
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
    
    db.init_app(app)
    
    return app

四、创建数据库 #

4.1 创建表 #

python
from app import db

with app.app_context():
    db.create_all()

4.2 删除表 #

python
with app.app_context():
    db.drop_all()

五、下一步 #

接下来让我们学习 模型定义,了解如何定义数据模型!

最后更新:2026-03-28