Перейти к содержанию

SessionConfig

SessionConfig — это простой набор конфигураций, который при передаче активирует встроенное middleware Esmerald. Когда объект SessionConfig передается в экземпляр приложения, автоматически запускается SessionMiddleware.

Tip

Больше информации о HTTP сессиях тут.

SessionConfig и приложение

Для использования SessionConfig в экземпляре приложения.

from esmerald import Esmerald, SessionConfig, settings

session_config = SessionConfig(
    secret_key=settings.secret_key,
)

app = Esmerald(session_config=session_config)

Еще пример

from esmerald import Esmerald, SessionConfig, settings

session_config = SessionConfig(
    secret_key=settings.secret_key,
    session_cookie="session",
)

app = Esmerald(session_config=session_config)

Параметры

Все параметры и значения по умолчанию доступны в справочнике SessionConfig.

SessionConfig и настройки приложения

SessionConfig можно настроить напрямую через создание экземпляра приложения, а также через настройки.

from esmerald import EsmeraldAPISettings, ImproperlyConfigured, SessionConfig


class CustomSettings(EsmeraldAPISettings):
    @property
    def session_config(self) -> SessionConfig:
        """
        Initial Default configuration for the SessionConfig.
        This can be overwritten in another setting or simply override
        `session_config` or then override the `def session_config()`
        property to change the behavior of the whole session_config.
        """
        if not self.secret_key:
            raise ImproperlyConfigured("`secret` setting not configured.")
        return SessionConfig(
            secret_key=self.secret_key,
            session_cookie="session",
        )

Это позволит вам поддерживать чистоту настроек и их разделение. Так же избегать перегруженного экземпляра Esmerald.

Esmerald Sessions

Если вы не хотите использовать встроенную конфигурацию сессий и предпочитаете более кастомизированный способ управления сессиями в Esmerald, существует официальный пакет Esmerald Sessions, который поможет вам в этом, включая middleware.