
✨ 그 반짝이는 작은 ASGI 프레임워크.✨
소개
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 라이센스 계약을 따르는 코드입니다. 잘 설계되고 생산되었습니다. _ — ⭐️ —