빛나는 작은 ASGI 프레임워크.
문서 : https://www.starlette.io
소스 코드 : https://github.com/encode/starlette
Starlette는 Python에서 비동기 웹 서비스를 구축하는 데 이상적인 경량 ASGI 프레임워크/툴킷입니다.
프로덕션 준비가 완료되었으며 다음을 제공합니다.
httpx
에 구축된 테스트 클라이언트.asyncio
및 trio
백엔드와 호환됩니다.$ pip install starlette
또한 uvicorn, daphne 또는 hypercorn과 같은 ASGI 서버를 설치하려고 할 것입니다.
$ 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 )
example.py
에서 app
애플리케이션을 실행합니다.
$ uvicorn example:app
INFO: Started server process [11509]
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
코드 변경 시 자동 다시 로드를 활성화하려면 --reload
와 함께 uvicorn을 실행하세요.
Starlette가 설계된 모듈성은 모든 ASGI 프레임워크 간에 공유할 수 있는 재사용 가능한 구성 요소 구축을 촉진합니다. 이를 통해 공유 미들웨어 및 탑재 가능한 애플리케이션의 생태계가 활성화되어야 합니다.
깔끔한 API 분리는 각 구성 요소를 개별적으로 이해하기가 더 쉽다는 것을 의미합니다.
Starlette는 BSD 라이센스 코드입니다.
세심하게 디자인하고 제작했습니다.
— ️ —