Маленький блестящий фреймворк ASGI.
Документация : https://www.starlette.io.
Исходный код : https://github.com/encode/starlette.
Starlette — это легкая среда/набор инструментов ASGI, который идеально подходит для создания асинхронных веб-сервисов на Python.
Он готов к производству и дает вам следующее:
httpx
.asyncio
и trio
.$ pip install starlette
Вам также понадобится установить сервер ASGI, например uvicorn, daphne или Hypercorn.
$ pip install uvicorn
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 )
]
app = Starlette ( debug = True , routes = routes )
Затем запустите приложение с помощью Uvicorn:
$ uvicorn example:app
Более полный пример см. в разделе encode/starlette-example.
Для Starlette требуется только anyio
, а следующие параметры не являются обязательными:
httpx
— требуется, если вы хотите использовать TestClient
.jinja2
— требуется, если вы хотите использовать Jinja2Templates
.python-multipart
— требуется, если вы хотите поддерживать анализ формы с помощью request.form()
.itsdangerous
— требуется для поддержки SessionMiddleware
.pyyaml
— требуется для поддержки SchemaGenerator
. Вы можете установить все это с помощью pip install starlette[full]
.
Starlette предназначен для использования либо как полноценная платформа, либо как набор инструментов ASGI. Вы можете использовать любой из его компонентов самостоятельно.
from starlette . responses import PlainTextResponse
async def app ( scope , receive , send ):
assert scope [ 'type' ] == 'http'
response = PlainTextResponse ( 'Hello, world!' )
await response ( scope , receive , send )
Запустите app
в example.py
:
$ uvicorn example:app
INFO: Started server process [11509]
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Запустите uvicorn с --reload
, чтобы включить автоматическую перезагрузку при изменении кода.
Модульность, на которой разработана Starlette, способствует созданию повторно используемых компонентов, которые можно использовать в любой среде ASGI. Это должно создать экосистему общего промежуточного программного обеспечения и монтируемых приложений.
Четкое разделение API также означает, что легче понять каждый компонент по отдельности.
Starlette — это лицензионный код BSD.
Разработано и изготовлено с осторожностью.
— ️ —