Flashbag (flash messages) support for aiohttp.web
Project description
The library provides flashbag for aiohttp.web.
Usage
The library allows us to share some data between requests inside session.
Basic usage example:
import aiohttp_flashbag
from aiohttp import web
from aiohttp_session import setup as setup_session
from aiohttp_session import SimpleCookieStorage
async def handler_get(request):
validation_error = aiohttp_flashbag.flashbag_get(request, 'error')
error_html = ''
if validation_error is not None:
error_html = '<span>{validation_error}</span>'.format(
validation_error=validation_error,
)
body = '''
<html>
<head><title>aiohttp_flashbag demo</title></head>
<body>
<form method="POST" action="/">
<input type="text" name="name" />
{error_html}
<input type="submit" value="Say hello">
</form>
</body>
</html>
'''
body = body.format(error_html=error_html)
return web.Response(body=body.encode('utf-8'), content_type='text/html')
async def handler_post(request):
post = await request.post()
if len(post['name']) == 0:
aiohttp_flashbag.flashbag_set(request, 'error', 'Name is required')
return web.HTTPSeeOther('/')
body = 'Hello, {name}'.format(name=post['name'])
return web.Response(body=body.encode('utf-8'), content_type='text/html')
def make_app():
session_storage = SimpleCookieStorage()
app = web.Application()
setup_session(app, session_storage)
app.middlewares.append(aiohttp_flashbag.flashbag_middleware)
app.router.add_route(
'GET',
'/',
handler_get,
)
app.router.add_route(
'POST',
'/',
handler_post,
)
return app
web.run_app(make_app())
First of all, you have to register aiohttp_flashbag.flashbag_middleware in aiohttp.web.Application.
You can get some data from the previous request with aiohttp_flashbag.flashbag_get method. Parameters:
request. Instance of aiohttp.web_request.Request.
key. Name of “variable” that you want to get
default. The default value that should be returned, if the key doesn’t exist in session flashbag.
To set one “variable” in flashbag you should use aiohttp_flashbag.flashbag_set. Parameters:
request. Instance of aiohttp.web_request.Request.
key. Name of “variable” that you want to specify.
value. Data that you want to specify.
If you need to replace all “variables” in flashbag you should use aiohttp_flashbag.flashbag_replace_all. Parameters:
request. Instance of aiohttp.web_request.Request.
value. Dict with values that you want to add into flashbag.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aiohttp-flashbag-0.0.3.tar.gz
.
File metadata
- Download URL: aiohttp-flashbag-0.0.3.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b3e2fe5bd1576ca7311baa9b3da2e6d4692b583878d5e397697b7297e296a2d |
|
MD5 | 3fa6dbb15bbc30dafc32a8de71a4871c |
|
BLAKE2b-256 | c0301fa93af0a7424f647551e712bd805820e9da26332df7a4a4a2cacffc75d9 |
File details
Details for the file aiohttp_flashbag-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: aiohttp_flashbag-0.0.3-py3-none-any.whl
- Upload date:
- Size: 3.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a0ac74e859544b9457deb07722c700f29f908234f8b139adf31c0194c7624d6 |
|
MD5 | 7ef949dda3017c9125deb8a0c7c83e88 |
|
BLAKE2b-256 | 64458765ca000df5e9c76f1d81510c92be3126e0a28e0bdec73ed9b6a342d983 |