Skip to content

Sanic Extension

from sqlspec.extensions.sanic import (
    SanicConfigState,
    SQLSpecAsyncService,
    SQLSpecPlugin,
    SQLSpecSyncService,
    get_connection_from_request,
    get_or_create_session,
)

Sanic server listener and request/response middleware extension for pool lifecycle management and request.ctx session injection. See the Sanic Integration Guide for usage examples.

Plugin & Configuration State

SQLSpecPlugin

SQLSpec integration for Sanic applications.

Provides Sanic-native configuration parsing and request helper methods. Runtime listener and middleware behavior is registered by init_app.

init_app

init_app(app)

Initialize Sanic application with SQLSpec.

Parameters:

Name Type Description Default
app Sanic[Any, Any]

Sanic application instance.

required

get_session

get_session(request, key=None)

Get or create database session for request.

Parameters:

Name Type Description Default
request Any

Sanic request instance.

required
key str | None

Optional session key to retrieve a specific database session.

None

Returns:

Type Description
Any

Database session driver instance.

get_connection

get_connection(request, key=None)

Get database connection from request context.

Parameters:

Name Type Description Default
request Any

Sanic request instance.

required
key str | None

Optional session key to retrieve a specific database connection.

None

Returns:

Type Description
Any

Database connection object.

SanicConfigState

Internal state for a Sanic database configuration.

Tracks the keys and behavior needed to bind one SQLSpec config into a Sanic app and its request context.

config

config

connection_key

connection_key

pool_key

pool_key

session_key

session_key

commit_mode

commit_mode

extra_commit_statuses

extra_commit_statuses

extra_rollback_statuses

extra_rollback_statuses

disable_di

disable_di

enable_correlation_middleware

enable_correlation_middleware = False

correlation_header

correlation_header = 'x-request-id'

correlation_headers

correlation_headers = None

auto_trace_headers

auto_trace_headers = True

enable_sqlcommenter_middleware

enable_sqlcommenter_middleware = True

sqlcommenter_framework

sqlcommenter_framework = 'sanic'

should_commit

should_commit(status_code)

Return whether a response status should trigger a commit.

should_rollback

should_rollback(status_code)

Return whether a response status should trigger a rollback.

Request Context Helpers

get_or_create_session

get_or_create_session(request, config_state)

Get or create database session for request.

Sessions are cached per request to return the same session instance across multiple calls in one request.

Parameters:

Name Type Description Default
request Any

Sanic request instance.

required
config_state SanicConfigState

Configuration state for the database.

required

Returns:

Type Description
Any

Database session driver instance.

get_connection_from_request

get_connection_from_request(request, config_state)

Get database connection from request context.

Parameters:

Name Type Description Default
request Any

Sanic request instance.

required
config_state SanicConfigState

Configuration state for the database.

required

Returns:

Type Description
Any

Database connection object.

Raises:

Type Description
ImproperConfigurationError

If SQLSpec request middleware has not stored a connection.