Installation
pip install urouter
Supported web frameworks
Quickstart
Define handler in router
from aiohttp import web
from urouter.exporters.aiohttp_exporter import AioHttpRouter
app = web.Application()
async def handler(request):
return web.Response(text="Hello World")
router = AioHttpRouter(app)
router.get("/home", handler)
# At this point aiohttp is ready to register all routes
router.export()
Define global middleware for all routes
from aiohttp import web
from urouter.exporters.aiohttp_exporter import AioHttpRouter
app = web.Application()
@web.middleware
async def info_middleware(request, handler):
# some operation before handle request
response = await handler(request)
return response
async def handler(request):
return web.Response(text="Hello World")
router = (AioHttpRouter(app)
.use(info_middleware))
# Register handler
router.get("/home", handler)
# At this point aiohttp is ready to register all routes
router.export()
Define inline middleware (run only for specific handler)
from aiohttp import web
from urouter.exporters.aiohttp_exporter import AioHttpRouter
app = web.Application()
@web.middleware
async def info_middleware(request, handler):
# some operation before handle request
response = await handler(request)
return response
async def handler(request):
return web.Response(text="Hello World")
router = AioHttpRouter(app)
# Middleware registered only for `/home` route
router.include(info_middleware).get("/home", handler)
# At this point aiohttp is ready to register all routes
router.export()
Define subrouter
from aiohttp import web
from urouter.exporters.aiohttp_exporter import AioHttpRouter
app = web.Application()
@web.middleware
async def info_middleware(request, handler):
# some operation before handle request
response = await handler(request)
return response
async def handler(request):
return web.Response(text="Hello World")
async def sub_handler(request):
return web.Response(text="Hello World")
router = AioHttpRouter(app)
router.include(info_middleware).get("/home", handler)
# Create new router
subrouter = router.make_router()
subrouter.get("/hello", sub_handler)
# All registered router become starts with prefix `/sub/`
# `/hello` becomes `/sub/hello`
router.mount("/sub", subrouter)
# At this point aiohttp is ready to register all routes
router.export()
Private/Public router
from aiohttp import web
from urouter.exporters.aiohttp_exporter import AioHttpRouter
app = web.Application()
async def auth_middleware(request, handler):
return web.HTTPForbidden()
async def public(request):
return web.Response(text="Hello World")
async def private(request):
return web.Response(text="Private Zone")
router = AioHttpRouter(app)
private_route = router.make_router().use(auth_middleware)
# Adding public handler
router.get("/home", public)
# Adding public handler
private_route.get("/private", private)
# Mount private router to main router
router.mount("/", private_route)
# At this point aiohttp is ready to register all routes
router.export()
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
urouter-0.1.2.tar.gz
(4.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file urouter-0.1.2.tar.gz.
File metadata
- Download URL: urouter-0.1.2.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cd9636ba444e996ab1749011ab1a0e65f3b607adeab39bc90af1fec0232dac7
|
|
| MD5 |
5fa962bccabc962fc0278a9d5c693af0
|
|
| BLAKE2b-256 |
752c9157582c079dd950972bf47d033aa092f833e98c707ef21ea4d3e688a136
|
File details
Details for the file urouter-0.1.2-py2.py3-none-any.whl.
File metadata
- Download URL: urouter-0.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0e48b2dcafe4f3d92c368949a17be7ec56fa251c7f6f15f191346c241559eab
|
|
| MD5 |
1042f197f465bd37481c1da09a39b489
|
|
| BLAKE2b-256 |
8ef13fe0e3787b383cd1e8ee0403bfeea74808e0885d26c7494db0d508e1ab2d
|