릴리스 노트
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일
고정
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네. - 에서 경로 수집
HostOpenAPI 스키마를 생성하려면 #2183네. - 추가
request에 대한 논쟁TemplateResponse#2191네.
고정
- 중지
body_stream경우more_body=False온BaseHTTPMiddleware#2194네.
0.28.0
2023년 6월 7일
변경된
추가
- 는
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
고정
- 존재
StaticFiles1797de4에서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일
고정
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일
고정
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일
제거됨
0.19.1
2022년 4월 22일
고정
구식
- 비난하다
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를 초기에 홍보했습니다.
구식
0.18.0
2022년 1월 23일
추가됨
- 기본 청크 크기를 4Kb에서 64Kb로 변경
FileResponse#1345네. - 에 대한 지원 추가
functools.partial에서WebSocketRoute#1356네. - 추가
StaticFiles디렉토리가 있는 패키지 #1350네. - 환경에서 옵션 허용
Jinja2Templates#1401네. HttpEndpoint#1346에서 헤드 메소드를 허용합니다.- 에서 추가 헤더 수락
websocket.accept메시지 #1361 그리고 #1422네. - 추가
reasonWebSocketASGI 이벤트 마감 #1417네. - 헤더 속성을
UploadFile#1382에 추가합니다. Content-Length: 0케이스#1395에 대한Content-Length헤더를 생략하지 마십시오.- 1xx, 204 및 304 상태 코드로 응답에 대한 헤더를 설정하지 마십시오. #1397네.
SessionMiddleware.max_age는 이제None를 수락하므로 브라우저 세션#1387만큼 쿠키가 지속될 수 있습니다.
고정
- 트위크
hashlib.md5()기능FileResponseETag 생성. 매개 변수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_plusDo - #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를 사용할 때 고정되지 않은 소켓ResourceWarnings - #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.sharesession기능. - 는
request.client로 원격 주소를 표시합니다.
0.9.8
request.database.executemany를 추가합니다.
0.9.7
AuthenticationMiddleware가 수명 메시지를 올바르게 처리하는지 확인합니다.
0.9.6
AuthenticationMiddleware및@requires()데코레이터를 추가합니다.
0.9.5
- 어느 쪽이든 지원
str또는SecretSessionMiddleware(secret_key=...)네.
0.9.4
- 추가
config.environ네. - 추가
datastructures.Secret네. datastructures.DatabaseURL를 추가합니다.
0.9.3
- 추가
config.Config(".env")
0.9.2
- 선택적 데이터베이스 지원을 추가했습니다.
- 추가
requestGraphQL 컨텍스트로. 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() 서명 일치.