Skip to main content

Flash messages for Starlette framework.

Project description

Starlette-Flash

Flash messages for Starlette framework.

PyPI GitHub Workflow Status GitHub Libraries.io dependency status for latest release PyPI - Downloads GitHub Release Date

Installation

Install starlette_flash using PIP or poetry:

pip install starlette_flash
# or
poetry add starlette_flash

Quick start

See example application in examples/ directory of this repository.

Setup

You must install SessionMiddleware to use flash messages.

Flashing messages

To flash a message use flash helper.

from starlette_flash import flash


def index_view(request):
    flash(request).add('This is a message.', 'success')

Using helpers

There are several predefined helpers exists which automatically set the category:

  • success
  • error
  • info
  • debug
from starlette_flash import flash


def index_view(request):
    flash(request).success('This is a message.')
    flash(request).error('This is a message.')
    flash(request).info('This is a message.')
    flash(request).debug('This is a message.')

Reading messages

To get current flash messages without removing them from session, use all method:

from starlette_flash import flash


def index_view(request):
    flash(request).success('This is a message.')

    messages = flash(request).all()
    print(messages)  # {'category': 'success', 'message': 'This is a message.'}

Consuming messages

You can read messages one by one and then clear the storage by using consume method.

from starlette_flash import flash


def index_view(request):
    flash(request).success('This is a message.')

    messages = []
    for message in flash(request).consume():
        messages.append(message)
    print(messages)  # {'category': 'success', 'message': 'This is a message.'}
    print(flash(request).all())  # empty, messages has been consumed

You can iterate the flash bag to consume messages as well:

from starlette_flash import flash


def index_view(request):
    flash(request).success('This is a message.')

    messages = []
    for message in flash(request):
        messages.append(message)
    print(messages)  # {'category': 'success', 'message': 'This is a message.'}
    print(flash(request).all())  # empty, messages has been consumed

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

starlette_flash-1.1.0.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

starlette_flash-1.1.0-py3-none-any.whl (4.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page