Flask¶
Flask extension providing request-scoped session management, automatic transaction handling, and async adapter support via the portal pattern.
Plugin¶
- class sqlspec.extensions.flask.SQLSpecPlugin[source]¶
Bases:
objectFlask extension for SQLSpec database integration.
Provides request-scoped session management, automatic transaction handling, and async adapter support via portal pattern.
Example
from flask import Flask from sqlspec import SQLSpec from sqlspec.adapters.sqlite import SqliteConfig from sqlspec.extensions.flask import SQLSpecPlugin
sqlspec = SQLSpec() config = SqliteConfig(
connection_config={“database”: “app.db”}, extension_config={
- “flask”: {
“commit_mode”: “autocommit”, “session_key”: “db”
}
}
) sqlspec.add_config(config)
app = Flask(__name__) plugin = SQLSpecPlugin(sqlspec, app)
@app.route(“/users”) def list_users():
db = plugin.get_session() result = db.execute(“SELECT * FROM users”) return {“users”: result.all()}
- init_app(app)[source]¶
Initialize Flask application with SQLSpec.
Validates configuration, creates portal if needed, creates pools, and registers hooks.
- Parameters:
- Raises:
ImproperConfigurationError – If extension already registered or keys not unique.
- Return type:
- get_session(key=None)[source]¶
Get or create database session for current request.
Sessions are cached per request for consistency.
State¶
- class sqlspec.extensions.flask.FlaskConfigState[source]¶
Bases:
objectInternal state for each database configuration in Flask extension.
Holds configuration, state keys, commit settings, and transaction logic.
- should_rollback(status_code)[source]¶
Determine if HTTP status code should trigger rollback.
In autocommit modes, anything that doesn’t commit should rollback.
- __init__(config, connection_key, session_key, commit_mode, extra_commit_statuses, extra_rollback_statuses, is_async, disable_di, enable_correlation_middleware=False, correlation_header='x-request-id', correlation_headers=None, auto_trace_headers=True)¶