https://github.com/alex-oleshkevich/starlette_flash
Flash messages for Starlette framework.
https://github.com/alex-oleshkevich/starlette_flash
flash notifications starlette
Last synced: 22 days ago
JSON representation
Flash messages for Starlette framework.
- Host: GitHub
- URL: https://github.com/alex-oleshkevich/starlette_flash
- Owner: alex-oleshkevich
- License: mit
- Created: 2022-10-08T13:17:52.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-20T11:02:29.000Z (about 1 year ago)
- Last Synced: 2025-03-18T18:55:16.601Z (about 2 months ago)
- Topics: flash, notifications, starlette
- Language: Python
- Homepage:
- Size: 105 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
README
# Starlette-Flash
Flash messages for Starlette framework.





## Installation
Install `starlette_flash` using PIP or poetry:
```bash
pip install starlette_flash
# or
poetry add starlette_flash
```## Quick start
See example application in [examples/](examples/) directory of this repository.
## Setup
You must install SessionMiddleware to use flash messages.
## Flashing messages
To flash a message use `flash` helper.
```python
from starlette_flash import flashdef 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```python
from starlette_flash import flashdef 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:
```python
from starlette_flash import flashdef 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.
```python
from starlette_flash import flashdef 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:
```python
from starlette_flash import flashdef 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```