
« Этот блеск небольшой ASGI рамки.»
Презентация
Starlette-это легкий фреймворк/инструментарий ASGI, который идеально подходит для создания асинхронных сетевых сервисов на Python.
Он готов к производству и предлагает вам следующее:
- Легкая и низкая сложность HTTP-сетевой инфраструктуры.
- Поддержка WebSocket.
- фоновые задачи в процессе.
- Запуск и закрытие событий.
Тестирование клиента* основано на
httpx. - CORS, GZip, статические файлы, потоковая реакция.
- Поддержка разговоров и файлов Cookie.
- 100% охват тестированием.
- Кодовая база для 100% комментариев типов.
- Почти нет жесткой зависимости.
- совместим с
asyncioиtrio. - Высокая общая производительность для независимых эталонов.
Требования
Python 3.8 и выше
Монтаж
$ pip3 install starlette
Вам также необходимо установить сервер ASGI, например uvicorn, daphne или hypercorn.
$ pip3 install uvicorn
Примеры
example.py:
from Starlette.applications import Starlette
from starlette. response import JSONResponse
От Starlet.routing Import Route
async def homepage(request):
Return JSONResponse({'hello': 'world'})
app = Starlette(debug=True, routes=[
Route ('/', homepage),
])
Затем запустить приложение...
$ uvicorn example:app
Более полные примеры см. здесь.
Зависимости
Starlette требуется только anyio, следующие зависимости являются необязательными:
httpx-обязательное поле, если вы хотите использоватьTestClient.jinja2-обязательно, если вы хотите использоватьJinja2Templatespython-multipart-если вы хотите поддерживать разрешение форм, вам нужно использоватьrequest.form().itsdangerous-необходим для поддержкиSessionMiddleware.pyyaml-требуется для поддержкиSchemaGenerator.
Вы можете установить все это с помощью pip3 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: начало процесса сервера [11509]
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Запустите uvicorn с помощью --reload для включения автоматической перезагрузки при изменении кода.
Модульный подход
Модульный дизайн, на котором основана Starlette, облегчает создание мультиплексных компонентов, которые могут быть совместно использованы в любой структуре ASGI. Это должно привести к созданию экосистемы совместного использования промежуточного программного обеспечения и монтируемых приложений.
Чистое разделение API также означает, что легче понять каждый компонент по отдельности.
Starlette-это код, который регулируется лицензионным соглашением BSD. Тщательно разработан и изготовлен. — ⭐️ —