콘텐츠로 이동

릴리스 노트

0.38.2

2024년 7월 27일

고정

  • 는 모든 루틴이 routing.get_name()#2648에 __name__ 를 가지고 있다고 가정하지 않습니다.

0.38.1

2024년 7월 23일

제거됨

  • 복원 "ASGI 경로 전송 확장에 대한 지원 추가" #2649.

0.38.0

2024년 7월 20일

추가

  • 는 StreamingResponse 및 Response#2576 및 #2577에서 memoryview 를 사용할 수 있습니다.
  • 안에 있을 때 StaticFiles #2583 요청한 파일 이름이 너무 길면 500 대신 404를 보내십시오.

변경(또는:변경)

잘못된 Jinja2Template Instantiation 매개 변수 #2568에서* 가 빠르게 실패합니다. * 엔드포인트 핸들러를 한 번만 비동기적으로 확인하십시오.

고정

  • 쪽으로 WebSocketTestSession #2597 적절한 동기화를 추가합니다.

0.37.2

2024년 3월 5일

추가

  • 추가 bytes _RequestData 유형 #2510네.

고정

  • 반전 "TestClient(#2377)"#2525에서 scope["client"] 를 None 로 바꾸십시오.
  • 제거 더 이상 사용되지 않는 app 인수가 TestClient #2526에서 httpx.Client 로 전달되었습니다.

0.37.1

2024년 2월 9일

고정

  • 누락된 env 파일에 대해 올리는 대신 경고 Config #2485네.

0.37.0

2024년 2월 5일

추가됨

  • 는 WebSocket 거부 응답 ASGI 확장#2041를 지원합니다.

0.36.3

2024년 2월 4일

고정

  • 만들기 anyio.Event 비동기 컨텍스트에서 #2459네.

0.36.2

2024년 2월 3일

고정

  • python-multipart 를 0.0.7 13e5c26로 업그레이드하십시오.
  • Content-Type #2443에서 중복 문자 집합을 피하십시오.

0.36.1

2024년 1월 23일

고정

  • 확장#2438를 확인하기 전에 범위에 "확장"이 있는지 확인합니다.

0.36.0

2024년 1월 22일

추가

  • ASGI 지원 추가 pathsend 확장 #2435네.
  • 취소 WebSocketTestSession 닫기 #2427네.
  • 키우기 WebSocketDisconnect 언제 WebSocket.send() 예외 IOError #2425네.
  • 키우기 FileNotFoundError 언제 env_file 매개 변수 Config 유효하지 않습니다 #2422네.

0.35.1

2024년 1월 11일

고정

  • 에서 사용되지 않는 "방법" 매개 변수 사용을 중지합니다. FileResponse 의 내부 StaticFiles #2406네.
  • 다시 typing-extensions 옵션 만들기#2409.

0.35.0

2024년 1월 11일

추가

  • 의지 *args 에 추가 Middleware 그리고 유형 힌트 #2381을 개선합니다.

고정

  • iterate_in_threadpool#2362에서 Iterator 대신 Iterable 사용

변화

  • 는 설치된 ASGI 애플리케이션 및 WSGI #2400과의 호환성을 유지하기 위해 root_path 를 처리합니다.
  • 존재 TestClient #2377 일반 scope["client"] None

0.34.0

2023년 12월 16일

추가

  • 는 run_in_threadpool#2375에 ParamSpec 를 사용합니다.
  • 추가 UploadFile.__repr__#2360.

고정

  • 는 TestClient#2376에서 URL을 올바르게 병합합니다.
  • 는 StaticFiles#2334에서 약한 ETags를 고려합니다.

구식

  • 는 FileResponse(method=...) 매개 변수 #2366을 더 이상 사용하지 않습니다.

0.33.0

2023년 12월 1일

추가

  • 는 middleware#2349를 Route/WebSocketRoute 당 추가합니다.
  • 는 Router 당 middleware#2351을 추가합니다.

고정

  • 덮어쓰지 마십시오 "path" 그리고 "root_path" 범위 키 #2352.
  • 는 WebSocket.send_json()#2341에 대해 json.dumps() 에 ensure_ascii=False 를 설정합니다.

0.32.0포스트1

2023년 11월 5일

고정

  • 9.1.17에서 9.4.7 2326으로 mkdocs 재료를 뒤로 빼십시오.

0.32.0

2023년 11월 4일

추가

  • 는 reason#2309를 WebSocketDisconnect 로 보냅니다.
  • 는 SessionMiddleware#2280에 domain 매개 변수를 추가합니다.

변화; 변화; 변화

  • 는 _TemplateResponse#2274의 Response 대신 HTMLResponse 에서 상속됩니다.
  • 는 Response.render 유형 주석을 0.31.0 이전 상태 #2264로 복원합니다.

0.31.1

2023년 8월 26일

고정

exceptiongroup 를 사용할 수 없는 경우* 수정 가져오기 오류 #2231. * 는 사용자 지정 Jinja 환경에 대한 url_for 글로벌 변수 #2230을 설정합니다.

0.31.0

2023년 7월 24일

추가

  • 는 공식적으로 파이썬 3.12#2214를 지원합니다.
  • 지원 AnyIO 4.0#2211.
  • 주석이 달린 Starlette를 엄격하게 입력하십시오(myPy의 엄격한 모드). #2180네.

고정

  • TestClient #2219를 사용할 때 단일 문자열에 중복 헤더를 그룹화하지 마십시오.

0.30.0

2023년 7월 13일

제거됨

  • Drop Python 3.7은#2178를 지원합니다.

0.29.0

2023년 7월 13일

추가됨

  • TestClient #2207에 follow_redirects 매개 변수를 추가합니다.
  • 추가 __str__ HTTPException 그리고 WebSocketException #2181네.
  • 사용 시 사용자에게 경고 lifespan 함께 on_startup/on_shutdown #2193네.
  • 에서 경로 수집 Host OpenAPI 스키마를 생성하려면 #2183네.
  • 추가 request 에 대한 논쟁 TemplateResponse #2191네.

고정

  • 중지 body_stream 경우 more_body=False 온 BaseHTTPMiddleware #2194네.

0.28.0

2023년 6월 7일

변경된

  • BaseHTTPMiddleware #1692에서 콜_다음을 위해 Request 의 바디 버퍼를 재사용하십시오.
  • 예외 처리로 논리 이동 Route #2026네.

추가

  • 는 env 매개 변수를 Jinja2Templates 에 추가하고 **env_options#2159를 더 이상 사용하지 않습니다.
  • 언제 httpx 설치되지 않은 경우 명시적 오류 메시지 #2177을 추가합니다.

고정

  • 를 사용하면 templates url_for()#2127에서 "이름" 매개 변수를 사용할 수 있습니다.

0.27.0

2023년 5월 16일

이 릴리스는 StaticFiles 의 경로 트래버설 취약성을 해결합니다. 전체 보안 게시판을 볼 수 있습니다https://github.com/encode/starlette/security/advisories/GHSA-v5gw-mw7f-84px

추가

  • 는 send_json 로 JSON WebSocket 데이터를 축소합니다. https://github.com/encode/starlette/pull/2128

고정

  • 존재 StaticFiles 1797de4에서 commonprefix 로 대체 commonpath ...
  • ImportEr를 ModuleNotFoundFire #2135로 변환합니다.
  • 웹 소켓 #2141의 런타임 오류 메시지 내용을 수정합니다.

0.26.1

2023년 3월 13일

고정

  • 하위 클래스를 허용하도록 Starlette #2077의 수명 유형을 수정합니다.

0.26.0포스트1

2023년 3월 9일

고정

  • mkdocs.yml의 Events에서 Lifespan으로 참조를 바꿉니다. #2072네.

0.26.0

2023년 3월 9일

추가됨

변경된

  • 변경 url_for 반환할 서명 URL 인스턴스 #1385네.

고정

  • url_for() 및 url_path_for() #2050에서 "이름" 인수를 허용합니다.

더 이상 사용되지 않음

  • 비난하다 on_startup 그리고 on_shutdown 이벤트 #2070네.

0.25.0

2023년 2월 14일

고정

  • MultipartParser 8c74c2c및#2036에서 multipart/form-data 를 구문 분석할 때 필드 및 파일 수를 제한합니다.

0.24.0

2023년 2월 6일

추가

  • 허용 StaticFiles 심링크를 따르려면 #1683네.
  • Request.form() 를 컨텍스트 관리자로 허용합니다.#1903입니다.
  • 추가 size 속성 UploadFile #1405네.
  • 추가 env_prefix 에 대한 논쟁 Config #1990네.
  • 템플릿 컨텍스트 프로세서 추가 #1904네.
  • 지원 str 그리고 datetime 온 expires 의 매개 변수 Response.set_cookie 방법 #1908네.

변경된

  • Lazily는 미들웨어 스택#2017를 구축했습니다.
  • UploadFile #1413에 필요한 file 인수를 만듭니다.
  • 사용자 지정 응답 템플릿 확장 대신 디버그 확장 사용 #1991네.

고정

  • ipv6 URL의 고정 URL 구문 분석 URL.replace #1965네.

0.23.1

2022년 12월 9일

고정

  • 스트림 수신만 중지 body_stream 몸이 비어 있으면 BaseHTTPMiddleware #1940네.

0.23.0

2022년 12월 5일

추가

  • 추가 headers 에 대한 매개 변수 TestClient #1966네.

구식

  • 는 Starlette 및 Router 데코레이터 #1897을 더 이상 사용하지 않았습니다.

고정

  • 수리 FloatConvertor 정규식 #1973에 오류가 발생했습니다.

0.22.0

2022년 11월 17일

변경된

  • 는 응답에 Content-Encoding#1901이 포함되어 있을 때 GZipMiddleware 를 우회합니다.

고정

  • 에서 TestClient #1953 원치 않는 쿼리 매개 변수 삭제 unquote() ...
  • 는 MutableHeaders._list 가 실제로 list#1917인지 확인합니다. AnyIO#1936의 다음 버전과* 의 호환성을 가져옵니다.

0.21.0

2022년 9월 26일

이 릴리스는 TestClient(requests :arrow_right:httpx)에 사용되는 기본 HTTP 클라이언트 측을 대체하며, 약간 다른 API로 인해 테스트 제품군이 중단될 수 있습니다. 마이그레이션을 더 원활하게 하려면 bump-testclient 도구를 사용할 수 있습니다.

변경(또는:변경)

  • TestClient#1376에서 requests 를 httpx 로 교체합니다.

추가

  • 추가 WebSocketException 그리고 WebSocket 예외 핸들러 지원 #1263네.
  • middleware 매개 변수를 Mount 클래스#1649에 추가합니다.
  • 는 공식적으로 Python 3.11#1863를 지원합니다.
  • 구현 __repr__ 경로 클래스의 경우 #1864네.

고정

  • 버그 수정 BackgroundTasks 사용 중 취소되었습니다 BaseHTTPMiddleware 그리고 클라이언트가 연결이 끊어졌습니다. #1715네.

0.20.4

2022년 6월 28일

고정

  • OpenAPI 스키마#1648를 생성할 때 경로에서 변환기를 제거합니다.

0.20.3

2022년 6월 10일

고정

  • 반전 "StaticFiles 가 심볼 링크를 따르도록 허용"#1681.

0.20.2

2022년 6월 7일

고정

  • 콜론#1675가 있는 경로 경로에 대한 고정 회귀 분석.
  • 허용 StaticFiles 심링크를 따르려면 #1337네.

0.20.1

2022년 5월 28일

고정

  • 비동기 호출 가능 감지 개선 #1444네.
  • 언제 400(잘못된 요청) 보내기 boundary 누락 #1617네.
  • "이름" 필드가 누락되면 400(잘못된 요청) 보내기 Content-Disposition 헤더 #1643네.
  • 빈 데이터를 보내지 마십시오. StreamingResponse 온 BaseHTTPMiddleware #1609네.
  • 추가 __bool__ 던더 포 Secret #1625네.

0.20.0

2022년 5월 3일

제거됨

  • Drop Python 3.6 지원 #1357 그리고 #1616네.

0.19.1

2022년 4월 22일

고정

  • 의 고정 추론 Route.name 메서드에서 만들 때 #1553네.
  • 코드가 None #1574일 때 websocket.disconnect 에서 TypeError 를 피하십시오.

구식

  • 비난하다 WS_1004_NO_STATUS_RCVD 그리고 WS_1005_ABNORMAL_CLOSURE 찬성 WS_1005_NO_STATUS_RCVD 그리고 WS_1006_ABNORMAL_CLOSURE, 이전 상수가 일치하지 않았기 때문에 웹 소켓 사양 #1580네.

0.19.0

2022년 3월 9일

추가

  • 백그라운드 작업에서 오류가 발생하더라도 오류 처리기는 항상 실행됩니다. #761네.
  • 추가 headers 매개 변수 HTTPException #1435네.
  • 와 내부 반응 405 상태 코드 삽입 Allow 헤더, 설명된 대로 RFC 7231 #1436네.
  • 존재 JSONResponse 에서 content 이제 파라미터가 필요합니다 #1431.
  • 사용자 지정 URL 변환기 등록 #1437을 추가합니다.
  • 쪽으로 FileResponse #1266 콘텐츠 폐기 유형 매개 변수를 추가합니다.
  • 필수 데코레이터 #920에서 원래 요청 URL과 함께 다음 쿼리 매개 변수를 추가합니다.
  • 는 TestClient 범위 #1445에 raw_path 를 추가합니다.
  • 는 결합 연산자를 MutableHeaders#1240에 추가합니다.
  • 디버그 페이지 #1363에 누락된 경로 세부 정보를 표시합니다.
  • 는 anyio 에 필요한 버전 범위를 >=3.4.0,<5.0#1421 및 #1460으로 변경합니다.
  • 는 typing-extensions>=3.10 요구 사항을 추가합니다. 파이썬 3.10보다 낮은 버전에서만 #1475를 사용하십시오.

고정

  • 는 BaseHTTPMiddleware 가 StreamingResponse 및 설치된 애플리케이션 #1459의 오류를 숨기는 것을 방지합니다.
  • SessionMiddleware 는 기본적으로 ASGI "Root_path" #1512 대신 명시적 path=... 를 사용합니다.
  • Request.client 이제 ASGI 사양 #1462를 준수합니다.
  • 는 경계 누락에 대해 KeyError 를 초기에 홍보했습니다.

구식

  • a2WSGI를 선호하는 WSGIMiddleware 비난 #1504네.
  • 비난하다 run_until_first_complete #1443네.

0.18.0

2022년 1월 23일

추가됨

  • 기본 청크 크기를 4Kb에서 64Kb로 변경 FileResponse #1345네.
  • 에 대한 지원 추가 functools.partial 에서 WebSocketRoute #1356네.
  • 추가 StaticFiles 디렉토리가 있는 패키지 #1350네.
  • 환경에서 옵션 허용 Jinja2Templates #1401네.
  • HttpEndpoint #1346에서 헤드 메소드를 허용합니다.
  • 에서 추가 헤더 수락 websocket.accept 메시지 #1361 그리고 #1422네.
  • 추가 reason WebSocket ASGI 이벤트 마감 #1417네.
  • 헤더 속성을 UploadFile #1382에 추가합니다.
  • Content-Length: 0 케이스#1395에 대한 Content-Length 헤더를 생략하지 마십시오.
  • 1xx, 204 및 304 상태 코드로 응답에 대한 헤더를 설정하지 마십시오. #1397네.
  • SessionMiddleware.max_age 는 이제 None 를 수락하므로 브라우저 세션#1387만큼 쿠키가 지속될 수 있습니다.

고정

  • 트위크 hashlib.md5() 기능 FileResponse ETag 생성. 매개 변수 usedforsecurity 플래그가 설정되었습니다. False 시스템에서 플래그를 사용할 수 있는 경우. 이렇게 하면 시스템에서 발생한 오류가 해결됩니다. FIPS 활성화 #1366 그리고 #1410네.
  • url_path_for() 방법에서 path_params 유형을 수정합니다. 즉,str 를 Any #1341로 바꿉니다.
  • Host 이제 무시 port 라우팅 중 #1322네.

0.17.1

2021년 11월 17일

고정

  • Fix IndexError 인증 requires 에서 랩핑된 함수 인수가 *args 와 **kwargs #1335사이에 배포될 때.

0.17.0

2021년 11월 4일

추가

  • Response.delete_cookie 이제 동일한 매개 변수를 수락합니다. Response.set_cookie #1228네.
  • Jinja2Templates 생성자를 업데이트하여 PathLike #1292를 허용합니다.

고정

SessionMiddleware#1264에서* 고정 배드 시그니처 예외 처리. * HTTPConnection.__getitem__ 반환 유형을 str 에서 typing.Any #1118. * 변경 ImmutableMultiDict.getlist 에서 반환 유형 typing.List[str] typing.List[typing.Any] #1235네. * 핸들 OSError 에 대한 예외 StaticFiles #1220네. * 고정 StaticFiles 404.html HTML 모드#1314. * 모든 것을 방지합니다. BaseHTTPMiddleware#1262아래의 오류 보기에서 예외 그룹.

제거됨

  • GraphQL 제거 지원#1198.

0.16.0

2021년 7월 19일

추가

고정

  • starlette.websockets.WebSocket 인스턴스는 이제 해시 가능하며 ID#1039로 비교됩니다.
  • 수명 내 작업 그룹 실행과 관련된 여러 가지 수정 사항#1213,#1227

더 이상 사용되지 않음/제거됨

  • 방법 starlette.templates.Jinja2Templates.get_env 가 제거되었습니다#1218
  • 클래스바 starlette.testclient.TestClient.async_backend 제거되었습니다. 백엔드는 이제 생성자 kwargs를 사용하여 구성됩니다. #1211
  • 비동기 생성기 함수 또는 생성기 함수를 starlette.routing.Router(lifespan=) 로 전달하는 것은 더 이상 사용되지 않습니다. @contextlib.asynccontextmanager 로 수명을 감싸야 합니다.#1227#1110

0.15.0

2021년 6월 23일

이 릴리스는 Starlette의 기본 비동기 부분을 크게 변경합니다. 그 결과 Starlette는 이제 AnyIO에 의존하며 약간의 API 변경이 있었습니다. 이 릴리스의 또 다른 주요 변경 사항은 내장된 GraphQL 지원의 사용 불가능입니다.

추가

  • Starlette는 이제 AnyIO - #1157을 통해 Trio를 비동기 런타임으로 지원합니다.
  • TestClient.websocket_connect() 이제 컨텍스트 관리자로 사용해야 합니다.
  • Python 3.10 - #1201에 대한 예비 지원. GZipMiddleware 에서* 가 사용하는 압축 수준은 이제 조정할 수 있습니다 -#1128.

고정

  • 의 CORSMiddleware 에 대한 몇 가지 수정. #1111, #1112, #1113, #1199를 참조하십시오.
  • 경로 매개 변수 이름이 중복되는 경우 개선된 예외 메시지 - #1177.
  • RedirectResponse 지금 Location 머리 사용 quote 인코딩보다는 quote_plus Do - #1164와 같은 다른 프레임워크에서 동작을 더 잘 일치시키기 위한 코딩.
  • 더 많은 경우 예외 원인이 보존됩니다 - #1158.
  • 응용 프로그램을 마운트하는 경우 세션 쿠키는 이제 ASGI 루트 경로 - #1147을 사용합니다.
  • 특정 상황에서 정적 파일을 삭제할 때 캐시 무효화 오류 수정 - #1023.
  • 는 큰 응답을 처리할 때 BaseHTTPMiddleware 의 메모리 사용을 향상시킵니다 - 고정 #1012 by #1157

더 이상 사용되지 않음/제거됨

  • 다음을 통해 내장된 GraphQL 지원 GraphQLApp 클래스는 더 이상 사용되지 않았으며 이후 릴리스에서 제거됩니다. 봐주세요 #619Python 3.10에서는 GraphQL이 지원되지 않습니다.
  • GraphQLApp 에 대한 executor 매개 변수가 제거되었습니다. 대신 executor_class 를 사용하십시오.
  • WSGIMiddleware 에 대한 workers 매개 변수가 제거되었습니다. 이것은 Starlette v0.6.3 이후로 아무런 효과가 없었습니다.

0.14.2

2021년 2월 2일

고정

  • 디버그 모드가 활성화될 때 파이썬 3.9.1/3.8.7와의 고정 ServerErrorMiddleware 호환성 -#1132.
  • WebSocket 엔드포인트와 함께 TestClient 를 사용할 때 고정되지 않은 소켓 ResourceWarning s - #1132.
  • 향상된 감지 기능 async 엔드포인트 포장 functools.partial 파이썬 3.8+ - #1106네.

0.14.1

2020년 11월 9일

제거됨

  • UJSONResponse 제거되었습니다(이 변경 사항은 0.14.0에 포함되도록 의도되었습니다). 문서 사용자 지정 JSON 직렬화를 사용하여 응답을 구현하는 방법 - #1074네.

0.14.0

2020년 11월 8일

추가

  • Starlette는 이제 공식적으로 Python 3.9를 지원합니다.
  • 인 StreamingResponse, 개체와 같은 사용자 지정 비동기 반복기가 클래스를 구현하지 못하도록 허용 __aiter__ 네.
  • 사용 허용 functools.partial 파이썬 버전 3.6 및 3.7의 비동기 핸들러.
  • 418 I'm A Teapot 상태 코드가 추가되었습니다.

변경된

  • asyncio.wait 로 보내기 전에 처리기 coroutine에서 작업을 만듭니다.
  • ServerErrorMiddleware 의 debug 응답에서 format_tb 대신 format_exception 를 사용합니다.
  • requires 데코레이터를 사용할 때 처리기 주장에 더 관대합니다.

0.13.8

BaseHTTPMiddleware 미들웨어 클래스 및 스트리밍 응답을 위한* Revert Queue(maxsize=1) 수정.

  • StaticFiles 생성자는 이제 directory 인수에 대한 문자열 외에 pathlib.Path 를 허용합니다.

0.13.7

  • 사용할 때 고정된 높은 메모리 사용량 BaseHTTPMiddleware 미들웨어 클래스 및 스트리밍 응답.

0.13.6

  • StaticFiles 로 404개의 오류를 수정했습니다.

0.13.5

  • 는 Starlette(lifespan=...) 기능에 대한 지원을 추가합니다.
  • Static 응용 프로그램에서 보다 강력한 경로 트래버설 확인.
  • WSGI PATH_INFO 인코딩을 수정합니다.
  • 리디렉션 이제 응답은 선택적 배경 매개 변수를 허용합니다.
  • 경로 경로에 정규식 메타문자 포함 허용
  • ASGI HTTP의 "본문"을 선택 키로 처리합니다.
  • 스레드 풀을 사용하여 메모리에 파일을 업로드하지 마십시오.

0.13.0

  • 초기화 스타일에서 애플리케이션 구성을 용이하게 하려면 전환하십시오. 이것은 선언적 라우팅 테이블과 미들웨어 정의를 선호하여 데코레이터 스타일을 포기하는 것을 의미합니다.

0.12.12

  • 는 "중첩 설치" 사례에 대한 request.url_for() 문제를 해결합니다.

0.12.11

  • ASGI 사용 시 root_path 수리 시간 request.url_for() ...

0.12.1

  • 추가 URL.include_query_params(**kwargs)
  • 추가 URL.replace_query_params(**kwargs)
  • 추가 URL.remove_query_params(param_names)
  • request.state 미들웨어에서 올바르게 지속됩니다.
  • 는 request.scope 인터페이스를 추가합니다.

0.12.0

  • ASGI 3.0으로 전환합니다.
  • CORS 미들웨어를 수정합니다.
  • StaticFiles(html=True) 지원을 추가합니다.
  • 리디렉션 응답에서 고정 경로 따옴표.

0.11.1

  • 임의 추가 정보를 저장하기 위한 request.state 인터페이스를 추가합니다.
  • 지원은 GraphQLApp(..., graphiql=False) 로 GrabhiQL을 비활성화합니다.

0.11.0

  • DatabaseMiddleware 이제 의 호의로 떨어졌습니다. databases
  • 템플릿은 더 이상 응용 프로그램 인스턴스에 구성되지 않습니다. 사용 templates = Jinja2Templates(directory=...) 그리고 return templates.TemplateResponse('index.html', {"request": request})
  • 스키마 생성은 더 이상 응용 프로그램 인스턴스에 연결되지 않습니다. 사용 schemas = SchemaGenerator(...) 그리고 return schemas.OpenAPIResponse(request=request)
  • LifespanMiddleware 라우터 기반 수명 처리에 유리합니다.
  • 이제 애플리케이션 인스턴스를 수락합니다. routes 논쟁, Starlette(routes=[...])
  • 이제 스키마 생성에는 마운트된 경로가 포함됩니다.

0.10.6

  • 추가 Lifespan 라우팅 구성 요소.

0.10.5

  • templating 가 엄격하게 jinja2 를 설치할 필요가 없는지 확인합니다.

0.10.4

  • 템플릿은 이제 애플리케이션 인스턴스와 독립적으로 구성됩니다. templates = Jinja2Templates(directory=...) 기존 API는 그대로 유지되지만 더 이상 문서화되지 않으며 적절한 시기에 사용되지 않습니다. 자세한 내용은 템플릿 설명서를 참조하십시오.

0.10.3

  • 독립으로 이동 databases 대신 포장 DatabaseMiddleware 기존 API는 그대로 유지되지만 더 이상 문서화되지 않으며 적절한 시기에 사용되지 않습니다.

0.10.2

  • 리디렉션에서 명시적 포트 번호를 삭제하지 마십시오. HTTPSRedirectMiddleware 네.

0.10.1

  • MySQL 데이터베이스 지원을 추가합니다.
  • 호스트 기반 라우팅을 추가합니다.

0.10.0

이제 WebSockets는 기본적으로 텍스트 데이터 프레임을 통해 JSON을 송수신합니다..send_json(data, mode="binary") 및 .receive_json(mode="binary") 를 사용하는 이진 프레임. * GraphQLApp 는 이제 기존 executor 매개 변수보다 먼저 사용해야 하는 executor_class 매개 변수를 허용합니다. 이벤트 루프가 설정되기 전에 비동기 액추에이터를 Instantiting하는 문제를 해결합니다. 다음 중간 또는 대규모 릴리스에서 executor 매개 변수가 사용되지 않을 것으로 예상합니다. 이제 인증 및 @requires 데코레이터가 WebSocket 엔드포인트를 지원합니다. * MultiDict 그리고 ImmutableMultiDict 수업 uvicorn.datastructures 에서 사용할 수 있습니다. * QueryParams 는 이제 표준 사전 스타일의 *args, **kwargs 매개 변수를 사용하여 Instantiated됩니다.

0.9.11

  • 이제 세션 쿠키에는 기존 서명된 만료 시간 외에 브라우저의 "만료"가 포함됩니다.
  • request.form() 이제 다중 사전 인터페이스를 반환합니다.
  • 동일한 키 항목이 여러 개 나타나면 쿼리 매개 변수 다중 사전 구현이 이제 완료됩니다. .keys() , .values() 그리고 .items() 더 정확하게 반영되는 행동 dict ...
  • 는 프로세스 전체에서 urlparse 대신 urlsplit 를 사용합니다.

0.9.10

  • 는 클래스 메서드에서 @requires(...) 를 지원합니다.
  • URL 이스케이프를 적용하여 데이터를 형성합니다.
  • 는 HEAD 요청을 자동으로 지원합니다.
  • 가 await request.is_disconnected() 를 추가했습니다.
  • 작업 이름을 GraphQL 실행자에게 전달합니다.

0.9.9

  • 는 TemplateResponse 를 추가합니다.
  • CommaSeparatedStrings 데이터 유형을 추가합니다.
  • 추가 BackgroundTasks 여러 작업의 경우.
  • 에 대한 공통 하위 클래스 Request 그리고 WebSocket, eg.share session 기능.
  • 는 request.client 로 원격 주소를 표시합니다.

0.9.8

  • request.database.executemany 를 추가합니다.

0.9.7

  • AuthenticationMiddleware 가 수명 메시지를 올바르게 처리하는지 확인합니다.

0.9.6

  • AuthenticationMiddleware 및 @requires() 데코레이터를 추가합니다.

0.9.5

  • 어느 쪽이든 지원 str 또는 Secret SessionMiddleware(secret_key=...) 네.

0.9.4

  • 추가 config.environ 네.
  • 추가 datastructures.Secret 네.
  • datastructures.DatabaseURL 를 추가합니다.

0.9.3

  • 추가 config.Config(".env")

0.9.2

  • 선택적 데이터베이스 지원을 추가했습니다.
  • 추가 request GraphQL 컨텍스트로.
  • URL.__repr__ 에서 암호 구성 요소를 숨깁니다.

0.9.1

  • 시작/종료 오류를 올바르게 처리합니다.

0.9.0

  • TestClient 이제 대신 컨텍스트 관리자로 사용할 수 있습니다. LifespanContext 네.
  • Lifespan은 이제 미들웨어로 처리됩니다. 시작 및 종료 이벤트는 미들웨어 스택 전체에서 볼 수 있습니다.

0.8.8

  • 타사 API 스키마 생성기를 더 잘 지원합니다.

0.8.7

  • TestClient에서 청크 요청을 지원합니다.
  • WSGIMiddleware로 비동기 작업을 올바르게 정리합니다. 서비스 조롱을 위해 엔드포인트 내에서 TestClient를 사용하는* 지원.

0.8.6

  • 이제 세션 쿠키가 루트 경로에 설정됩니다.

0.8.5

  • URL 변환기를 지원합니다.
  • 는 StaticFiles 에서 HTTP 304 캐시된 응답을 지원합니다.
  • 양식 데이터에서 문자 이스케이프 문제를 해결합니다.

0.8.4

  • 응답에 기본 본문이 비어 있습니다.

0.8.3

  • 는 @app.route() 에 "이름" 매개 변수를 추가합니다.
  • "호스트" 헤더를 사용하여 URL을 재구성합니다.

0.8.2

정적 파일

  • Static는 더 이상 HEAD 요청에 대한 응답으로 파일을 읽지 않습니다.

0.8.1

템플릿

  • Jinja2를 사용하여 기본 템플릿 구성을 추가합니다.

다음이 허용됩니다.

App = Starlette (t_디렉토리 = "템플릿")

@app. ('/')
Async def 홈페이지(요청):
    #`url_for` 는 템플릿 내에서 사용할 수 있습니다.
    템플릿 = get_('인덱스.html')
    내용 = 템플릿.렌더 (요청 = 요청)
    HTML 응답(콘텐츠)을 반환합니다.

0.8.0

예외

  • 는 @app.exception_handler(404) 에 대한 지원을 추가합니다.
  • 처리된 예외가 미들웨어 스택에서 오류로 처리되지 않도록 하십시오.

대화 미들웨어

  • 추가 max_age, 그리고 타임스탬프로 서명된 쿠키를 사용하십시오. 기본값은 2 주입니다.

쿠키

  • 쿠키가 엄격하게 HTTP인지 확인합니다.

정적 파일

  • Instantiation에 확인 디렉토리가 있습니다.

0.7.4

동시성

  • 추가 starlette.concurrency.run_in_threadpool 손잡이. 지금 contextvar 지원.

0.7.3

라우팅

  • name= 지원을 app.mount() 에 추가합니다. 이것은 예:app.mount('/static', StaticFiles(directory='static'), name='static') 를 허용합니다.

0.7.2

미들웨어

  • @app.middleware("http") 데코레이터에 대한 지원을 추가합니다.

라우팅

  • ASGI 범위에 "엔드포인트"를 추가합니다.

0.7.1

디버그 추적

  • 디버깅 추적 정보 및 스타일링이 개선되었습니다.

URL 라우팅

  • 는 "경로 =", eg.url_for('static', path=...) 로 마운트된 URL 검색을 지원합니다.
  • 는 중첩된 URL 조회(예:url_for('admin:user', username=...))를 지원합니다.
  • 리디렉션 슬래시 지원이 추가되었습니다.
  • www 리디렉션 지원이 추가되었습니다.

배경 작업

  • FileResponse 및 StreamingResponse 에 백그라운드 작업 지원을 추가합니다.

0.7.0

API 스키마 지원

  • app.schema_generator = SchemaGenerator(...) 를 추가합니다.
  • app.schema 속성을 추가합니다.
  • OpenAPIResponse(...) 를 추가합니다.

GraphQL 라우팅

  • 드롭 app.add_graphql_route("/", ...) 보다 일관성을 위해 app.add_route("/", GraphQLApp(...)) 네.

0.6.3

라우팅 API

  • 메서드로의 라우팅을 지원합니다.
  • url_path_for 가 Mount('/{some_path_params}')와 함께 작동하는지 확인합니다.
  • 고정 라우터(기본값 =) 인수.
  • 다음과 같은 반복 경로를 지원합니다. @app.route("/", methods=["GET"]), @app.route("/", methods=["POST"])
  • 모든 동기화 엔드포인트에 대해 기본 스레드 풀 실행기를 사용하십시오.

0.6.2

세션 미들웨어

쌍 추가 request.session 지원, 그리고 SessionMiddleware ...

0.6.1

BaseHTTP 미들웨어

일반 ASGI 미들웨어를 통해 표준 요청/응답 인터페이스를 제공하는 BaseHTTPMiddleware 에 대한 지원이 추가되었습니다.

즉, ASGI 메시지를 직접 처리하는 대신 요청/응답 수준에서 작업하면서 ASGI 미들웨어를 작성할 수 있습니다.

Starlette. 응용 프로그램이 Starlette에서 가져옵니다.
Starlette.middle.base 가져오기 BaseHTTPMiddleware에서


클래스 사용자 지정 미들웨어(BaseHTTPMiddleware):
    Aync def 디스패치(자체, 요청, 콜_다음):
        응답 = 전화 대기 _ 다음 (요청)
        응답.헤더 ['사용자 지정-헤더'] = '예'
        응답 반환


앱 = Starlette ()
App.add_middleware(사용자 지정 미들웨어)

0.6.0

경로 요청

0.6의 가장 큰 변화는 엔드포인트 서명이 더 이상 존재하지 않는다는 것입니다.

Async def func (요청: 요청, **kwargs) -> 응답

대신 다음을 사용합니다.

Async def func (요청: 요청) -> 응답

경로 매개 변수는 요청에서 request.path_params 형식으로 사용할 수 있습니다.

이것은 대부분의 파이썬 웹 프레임워크와는 다르지만 궁극적으로 프로세스 전반에 걸쳐 더 일관적일 것이라고 생각합니다.

요청. url_for ()

이제 요청 및 웹 소켓 세션이 지원됩니다. request.url_for(name, **path_params) URL 반전을 수행합니다. 이 방법은 완전한 자격을 반환합니다. URL 인스턴스. URL 인스턴스는 문자열과 같은 개체입니다.

app.url_pase_for () (이 영어 식은 기술 필드의 특정 함수 또는 메서드 이름일 수 있습니다. 중국 문맥에서, 원본 텍스트의 영어 표현은 정확성과 전문성을 보장하기 위해 때때로 유지됩니다. 따라서 여기 번역은 원본 텍스트의 영어 형식을 직접 유지합니다.)

이제 응용 프로그램은 app.url_path_for(name, **path_params) 를 사용하여 URL 경로 반전을 지원합니다. 이 메서드는 경로 및 구성표가 설정된 URL 인스턴스를 반환합니다. URL 인스턴스는 문자열에 강제 적용되면 경로만 반환하는 문자열과 같은 개체입니다.

앱. 라우팅

이제 응용 프로그램은 [Route|WebSocketRoute|Mount] 목록을 반환하는 .routes 매개 변수를 지원합니다.

라우팅, 웹 소켓 라우팅, 마운트

낮은 수준의 구성 요소 Router 지금과 함께 @app.route() , @app.websocket_route() 그리고 app.mount() 서명 일치.