콘텐츠로 이동

스타렛

✨ 그 반짝이는 작은 ASGI 프레임워크.✨

Build StatusPackage version


소개

Starlette는 파이썬에서 비동기 웹 서비스를 구축하는 데 이상적인 경량 ASGI 프레임워크/툴킷입니다.

생산 준비가 되었으며 다음을 제공합니다.

  • 가볍고 복잡도가 낮은 HTTP 네트워킹 프레임워크입니다.
  • 웹 소켓 지원.
  • 프로세스의 백그라운드 작업.
  • 이벤트 시작 및 종료.
  • 테스트 클라이언트 측은 httpx 를 기반으로 합니다.
  • CORS, GZip, 정적 파일, 스트리밍 응답.
  • 세션 및 쿠키 지원.
  • 100% 테스트 적용 범위.
  • 100% 유형 주석이 달린 코드베이스.
  • 어려운 의존성은 거의 없습니다.
  • 와 함께 asyncio 그리고 trio 백엔드 호환성.
  • 독립적 벤치마크에 대한 전반적인 성능이 우수합니다.

요청

파이썬 3.8 이상

설치

$ pip3 install starlette

uvicorn, daphne 또는 하이퍼콘과 같은 ASGI 서버도 설치해야 합니다.

$3 설치 uvicorn

예

example.py:

Starlette. 응용 프로그램이 Starlette에서 가져옵니다.
Starlette.에서 JSONResponse 가져오기
별자리에서. 라우팅 가져오기 경로


Async def 홈페이지(요청):
    JSON 응답을 반환합니다({'hello': 'world'}).


앱 = Starlette (디버그 = 참, 경로 = [
    경로('/', 홈페이지),
])

그런 다음 응용 프로그램을 실행합니다. ..

$uvicorn 예: 앱

보다 완벽한 예는 여기를 참조하십시오.

의존성

Starlette에는 anyio 만 필요하며 다음 종속성은 선택 사항입니다.

  • httpx-TestClient 를 사용하려면 필요합니다.
  • jinja2-Jinja2Templates 를 사용하려면 필요합니다.
  • python-multipart- 양식 구문 분석을 지원하려면 request.form() 와 함께 필요합니다.
  • itsdangerous-SessionMiddleware 지원에 필요합니다.
  • pyyaml - SchemaGenerator 지원에 필요합니다.

pip3 install starlette[full] 를 사용하여 이 모든 것을 설치할 수 있습니다.

프레임워크 또는 툴킷

Starlette는 완전한 프레임워크 또는 ASGI 툴킷으로 사용하도록 설계되었습니다. 구성 요소를 독립적으로 사용할 수 있습니다.

Starlette.에서 일반 텍스트 응답을 가져옵니다.


비동기 def 앱(범위, 수신, 전송):
    주장 범위 ['유형'] == 'http'
    응답 = 일반 텍스트 응답('안녕하세요, 세상!')
    응답 대기 중(범위, 수신, 전송)

example.py 에서 app 응용 프로그램을 실행합니다.

$uvicorn 예: 앱
정보: 서버 프로세스 시작 [11509]
정보: http://127.0.0.1:8000 실행 중인 Uvicorn (종료하려면 Ctrl+C를 누르십시오)

--reload 로 uvicorn을 실행하여 코드가 변경될 때 자동으로 다시 로드할 수 있습니다.

모듈화

Starlette의 모듈식 설계는 모든 ASGI 프레임워크에서 공유할 수 있는 재사용 가능한 구성 요소를 구축하는 데 도움이 됩니다. 이를 통해 공유 미들웨어 및 장착 가능한 애플리케이션 에코시스템이 가능해야 합니다.

또한 깨끗한 API 분리를 통해 각 구성 요소를 개별적으로 쉽게 이해할 수 있습니다.


_Starlette는 BSD 라이센스 계약을 따르는 코드입니다. 잘 설계되고 생산되었습니다. _ — ⭐️ —