Starlette Extension¶
from sqlspec.extensions.starlette import (
SQLSpecAsyncService,
SQLSpecAutocommitMiddleware,
SQLSpecConfigState,
SQLSpecManualMiddleware,
SQLSpecPlugin,
SQLSpecSyncService,
get_connection_from_request,
get_or_create_session,
)
Starlette lifespan management, autocommit and manual transaction ASGI middlewares, and request.state session extraction helpers. See the Starlette Integration Guide for usage examples.
Plugin & State¶
SQLSpecPlugin
¶
SQLSpec integration for Starlette applications.
Provides middleware-based session management, automatic transaction handling, and connection pooling lifecycle management.
init_app
¶
Initialize Starlette application with SQLSpec.
Validates configuration, wraps lifespan, and adds middleware.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
Starlette
|
Starlette application instance. |
required |
lifespan
¶
Manage connection pool lifecycle.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
Starlette
|
Starlette application instance. |
required |
Yields:
| Type | Description |
|---|---|
AsyncGenerator[None, None]
|
None |
get_session
¶
Get or create database session for request.
Sessions are cached per request to ensure consistency.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
Request
|
Starlette request instance. |
required |
key
|
str | None
|
Optional session key to retrieve specific database session. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Database session (driver instance). |
get_connection
¶
SQLSpecConfigState
¶
ASGI Transaction Middlewares¶
SQLSpecAutocommitMiddleware
¶
Bases: BaseHTTPMiddleware
Middleware for autocommit transaction mode.
Acquires connection, commits on success status codes, rollbacks on error status codes.
SQLSpecManualMiddleware
¶
Bases: BaseHTTPMiddleware
Middleware for manual transaction mode.
Acquires connection from pool, stores in request.state, releases after request. No automatic commit or rollback - user code must handle transactions.
Request Session Helpers¶
get_or_create_session
¶
Get or create database session for request.
Sessions are cached per request to ensure the same session instance is returned for multiple calls within the same request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
Request
|
Starlette request instance. |
required |
config_state
|
SQLSpecConfigState
|
Configuration state for the database. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Database session (driver instance). |
get_connection_from_request
¶
Get database connection from request state.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
Request
|
Starlette request instance. |
required |
config_state
|
SQLSpecConfigState
|
Configuration state for the database. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Database connection object. |