mirror of https://github.com/encode/starlette.git
1.3 KiB
1.3 KiB
Starlette also includes an App
class that nicely ties together all of
its other functionality.
from starlette.app import App
from starlette.response import PlainTextResponse
from starlette.staticfiles import StaticFiles
app = App()
app.mount("/static", StaticFiles(directory="static"))
@app.route('/')
def homepage(request):
return PlainTextResponse('Hello, world!')
@app.route('/user/{username}')
def user(request, username):
return PlainTextResponse('Hello, %s!' % username)
@app.websocket_route('/ws')
async def websocket_endpoint(session):
await session.accept()
await session.send_text('Hello, websocket!')
await session.close()
Adding routes to the application
You can use any of the following to add handled routes to the application:
.add_route(path, func, methods=["GET"])
- Add an HTTP route. The function may be either a coroutine or a regular function, with a signature likefunc(request **kwargs) -> response
..add_websocket_route(path, func)
- Add a websocket session route. The function must be a coroutine, with a signature likefunc(session, **kwargs)
..mount(prefix, app)
- Include an ASGI app, mounted under the given path prefix.route(path)
- Add an HTTP route, decorator style..websocket_route(path)
- Add a WebSocket route, decorator style.