aiohttp-asgi 0.5.2

Creator: bigcodingguy24

Last updated:

0 purchases

aiohttp-asgi 0.5.2 Image
aiohttp-asgi 0.5.2 Images

Languages

Categories

Add to Cart

Description:

aiohttpasgi 0.5.2

aiohttp-asgi

This module provides a way to use any ASGI compatible frameworks and aiohttp together.
Example
from aiohttp import web
from fastapi import FastAPI
from starlette.requests import Request as ASGIRequest

from aiohttp_asgi import ASGIResource


asgi_app = FastAPI()


@asgi_app.get("/asgi")
async def root(request: ASGIRequest):
return {
"message": "Hello World",
"root_path": request.scope.get("root_path")
}


aiohttp_app = web.Application()

# Create ASGIResource which handle
# any request startswith "/asgi"
asgi_resource = ASGIResource(asgi_app, root_path="/asgi")

# Register resource
aiohttp_app.router.register_resource(asgi_resource)

# Mount startup and shutdown events from aiohttp to ASGI app
asgi_resource.lifespan_mount(aiohttp_app)

# Start the application
web.run_app(aiohttp_app)

Installation
pip install aiohttp-asgi

ASGI HTTP server
Command line tool for starting aiohttp web server with ASGI app.
Example
Create the test_app.py
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.routing import Route


async def homepage(request):
return JSONResponse({'hello': 'world'})

routes = [
Route("/", endpoint=homepage)
]

application = Starlette(debug=True, routes=routes)

and run the test_app.py with aiohttp-asgi
aiohttp-asgi \
--address "[::1]" \
--port 8080 \
test_app:application

alternatively using python -m
python -m aiohttp_asgi \
--address "[::1]" \
--port 8080 \
test_app:application

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.