Bind views to exceptions for aiohttp
Project description
Usage
import asyncio
from aiohttp import web
from aiohttp_ext_handlers import (
exc_handlers_middleware,
bind_exc_handler,
)
class CustomException(Exception):
pass
async def custom_exception_handler(request, exc):
return web.Response(text="Hello, {!s}!".format(exc))
async def hello(request):
raise CustomException('world')
# add middleware
app = web.Application(middlewares=[exc_handlers_middleware])
# bind handler to exception
bind_exc_handler(app, CustomException, custom_exception_handler)
app.router.add_route('GET', '/', hello)
loop = asyncio.get_event_loop()
handler = app.make_handler()
f = loop.create_server(handler, '0.0.0.0', 8080)
srv = loop.run_until_complete(f)
try:
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
loop.run_until_complete(handler.finish_connections(1.0))
srv.close()
loop.run_until_complete(srv.wait_closed())
loop.run_until_complete(app.finish())
loop.close()
Tests
$ pip install pytest
$ py.test tests.py
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
File details
Details for the file aiohttp_exc_handlers-0.1.tar.bz2
.
File metadata
- Download URL: aiohttp_exc_handlers-0.1.tar.bz2
- Upload date:
- Size: 2.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c8c314042c4fd6fea5cf6dd328ff85ae07004afdfcb82ecfd822498327dfbb6 |
|
MD5 | 908934829d1df8de1dd3db6742e801cf |
|
BLAKE2b-256 | 5f5c9351677497f38b82874e24f65b2ab492ff4f54ec70070c81b727e5448772 |