发布说明¶
最新变更¶
0.116.0¶
新特性¶
安装 fastapi[standard]
现在包含 fastapi-cloud-cli
。
这将允许您使用 fastapi deploy
命令部署到 FastAPI Cloud。
如果您想安装带标准依赖但没有 fastapi-cloud-cli
的 fastapi
,您可以安装 fastapi[standard-no-fastapi-cloud-cli]
。
翻译¶
- 🌐 添加
docs/docs/advanced/response-directly.md
的俄语翻译。PR #13801 by @NavesSapnis。 - 🌐 添加
docs/docs/advanced/additional-status-codes.md
的俄语翻译。PR #13799 by @NavesSapnis。 - 🌐 添加
docs/docs/tutorial/body-updates.md
的乌克兰语翻译。PR #13804 by @valentinDruzhinin。
内部¶
- ⬆ pillow 从 11.1.0 升级到 11.3.0。PR #13852 by @dependabot[bot]。
- 👥 更新 FastAPI 人员 - 赞助商。PR #13846 by @tiangolo。
- 👥 更新 FastAPI GitHub 主题仓库。PR #13848 by @tiangolo。
- ⬆ mkdocs-material 从 9.6.1 升级到 9.6.15。PR #13849 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13843 by @pre-commit-ci[bot]。
- 👥 更新 FastAPI 人员 - 贡献者和翻译者。PR #13845 by @tiangolo。
0.115.14¶
修复¶
- 🐛 修复使用
Form
时对联合类型的支持。PR #13827 by @patrick91。
文档¶
- ✏️ 修复
docs/en/docs/advanced/response-directly.md
中的语法错误。PR #13800 by @NavesSapnis。 - 📝 更新 Speakeasy URL 为 Speakeasy Sandbox。PR #13697 by @ndimares。
翻译¶
- 🌐 添加
docs/docs/tutorial/response-model.md
的乌克兰语翻译。PR #13792 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/security/index.md
的乌克兰语翻译。PR #13805 by @valentinDruzhinin。 - ✏️ 修复
docs/docs/tutorial/encoder.md
中的错别字。PR #13815 by @ruzia。 - ✏️ 修复
docs/docs/tutorial/handling-errors.md
中的错别字。PR #13814 by @ruzia。 - ✏️ 修复
docs/docs/tutorial/body-fields.md
中的错别字。PR #13802 by @ruzia。 - 🌐 添加
docs/docs/advanced/index.md
的俄语翻译。PR #13797 by @NavesSapnis。
内部¶
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13823 by @pre-commit-ci[bot]。
0.115.13¶
修复¶
- 🐛 修复 Pydantic V2 模型描述中表单进纸符 (
\f
) 字符截断的问题。PR #13698 by @YuriiMotov。
重构¶
- ✨ 在
OAuth2PasswordBearer
中添加refreshUrl
参数。PR #11460 by @snosratiershad。 - 🚸 将
OAuth2PasswordRequestForm
中password
和client_secret
字段的格式设置为 password,使文档显示密码字段。PR #11032 by @Thodoris1999。 - ✅ 简化
settings
的测试。PR #13505 by @valentinDruzhinin。 - ✅ 简化
validate_response_recursive
的测试。PR #13507 by @valentinDruzhinin。
升级¶
- ⬆️ 将 ReDoc 更新到 2.x 版本。PR #9700 by @joakimnordling。
文档¶
- 📝 为 HTTP 中间件示例添加注释。PR #11530 by @Kilo59。
- 📝 在 CORS 文档中阐明通配符和凭据互斥。PR #9829 by @dfioravanti。
- ✏️ 修复文档字符串中的错别字。PR #13532 by @comp64。
- 📝 阐明关于不带
await
使用async def
的指导。PR #13642 by @swastikpradhan1999。 - 📝 更新 exclude-parameters-from-openapi 文档链接。PR #13600 by @timonrieger。
- 📝 澄清文档中中间件的执行顺序。PR #13699 by @YuriiMotov。
- 🍱 更新 Drawio 图表 SVG,每个图表一个文件,使用无衬线字体。PR #13706 by @tiangolo。
- 📝 更新“帮助 FastAPI”文档,简化并缩减“赞助商”部分。PR #13670 by @tiangolo。
- 📝 从文档中删除不必要的项目符号。PR #13641 by @Adamowoc。
- ✏️ 修复
docs/en/docs/tutorial/handling-errors.md
中的语法错误。PR #13623 by @gsheni。 - 📝 修复文档中的错别字。PR #13599 by @Taoup。
- 📝 修复 liblab 客户端生成文档链接。PR #13571 by @EFord36。
- ✏️ 修复讲座信息错别字。PR #13544 by @blueswen。
- 📝 添加外部链接:关于 FastAPI 与可观测性的台湾讲座。PR #13527 by @blueswen。
翻译¶
- 🌐 添加
docs/docs/advanced/response-change-status-code.md
的俄语翻译。PR #13791 by @NavesSapnis。 - 🌐 添加
docs/docs/learn/index.md
的波斯语翻译。PR #13518 by @Mohammad222PR。 - 🌐 添加
docs/docs/advanced/sub-applications.md
的韩语翻译。PR #4543 by @NinaHwang。 - 🌐 添加
docs/docs/tutorial/schema-extra-example.md
的乌克兰语翻译。PR #13769 by @valentinDruzhinin。 - ✏️ 删除
docs/docs/python-types.md
中多余的词语。PR #13774 by @CharleeWa。 - 🌐 添加
docs/docs/tutorial/query-param-models.md
的乌克兰语翻译。PR #13748 by @valentinDruzhinin。 - 🌐 添加
docs/docs/environment-variables.md
的孟加拉语翻译。PR #13629 by @SakibSibly。 - 🌐 添加
docs/docs/tutorial/query-params-str-validations.md
页面的乌克兰语翻译。PR #13546 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/cookie-param-models.md
的俄语翻译。PR #13616 by @EgorOnishchuk。 - 🌐 添加
docs/docs/tutorial/extra-models.md
的韩语翻译。PR #13063 by @timothy-jeong。 - 🌐 添加
docs/docs/tutorial/path-params-numeric-validations.md
页面的乌克兰语翻译。PR #13548 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/middleware.md
页面的乌克兰语翻译。PR #13520 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/background-tasks.md
页面的乌克兰语翻译。PR #13502 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/cors.md
页面的乌克兰语翻译。PR #13519 by @valentinDruzhinin。 - 🌐 更新
docs/docs/advanced/events.md
的韩语翻译。PR #13487 by @bom1215。 - 🌐 添加
docs/docs/tutorial/handling-errors.md
页面的乌克兰语翻译。PR #13420 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/request-form-models.md
的俄语翻译。PR #13552 by @EgorOnishchuk。 - 📝 修复西班牙语部署文档中的内部锚链接。PR #13737 by @fabianfalon。
- 🌐 更新
docs/docs/virtual-environments.md
的韩语翻译。PR #13630 by @sungchan1。 - 🌐 添加
docs/docs/tutorial/header-param-models.md
的俄语翻译。PR #13526 by @minaton-ru。 - 🌐 更新
docs/docs/tutorial/index.md
的中文翻译。PR #13374 by @Zhongheng-Cheng。 - 🌐 更新
docs/docs/deployment/manually.md
的中文翻译。PR #13324 by @Zhongheng-Cheng。 - 🌐 更新
docs/docs/deployment/server-workers.md
的中文翻译。PR #13292 by @Zhongheng-Cheng。 - 🌐 更新
docs/docs/tutorial/first-steps.md
的中文翻译。PR #13348 by @Zhongheng-Cheng。
内部¶
- 🔨 解决内部脚本中的 Pydantic 弃用警告。PR #13696 by @emmanuel-ferdman。
- 🔧 更新赞助商:移除 Porter。PR #13783 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13781 by @pre-commit-ci[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13757 by @pre-commit-ci[bot]。
- ⬆ griffe-typingdoc 从 0.2.7 升级到 0.2.8。PR #13751 by @dependabot[bot]。
- 🍱 更新赞助商:Dribia 徽章大小。PR #13773 by @tiangolo。
- 🔧 更新赞助商:添加 Dribia。PR #13771 by @tiangolo。
- ⬆ typer 从 0.15.3 升级到 0.16.0。PR #13752 by @dependabot[bot]。
- 👥 更新 FastAPI GitHub 主题仓库。PR #13754 by @tiangolo。
- 👥 更新 FastAPI 人员 - 赞助商。PR #13750 by @tiangolo。
- 👥 更新 FastAPI 人员 - 贡献者和翻译者。PR #13749 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13736 by @pre-commit-ci[bot]。
- 🔧 更新赞助商:添加 InterviewPal。PR #13728 by @tiangolo。
- 🔧 移除 Google Analytics。PR #13727 by @tiangolo。
- 🔧 更新赞助商:移除 MongoDB。PR #13725 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13711 by @pre-commit-ci[bot]。
- 🔧 更新赞助商:添加 Subtotal。PR #13701 by @tiangolo。
- 🔧 更新赞助商:移除 deepset / Haystack。PR #13700 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13688 by @pre-commit-ci[bot]。
- 👥 更新 FastAPI 人员 - 专家。PR #13671 by @tiangolo。
- ⬆ typer 从 0.12.5 升级到 0.15.3。PR #13666 by @dependabot[bot]。
- ⬆ sqlmodel 从 0.0.23 升级到 0.0.24。PR #13665 by @dependabot[bot]。
- 🔧 更新赞助商:Zuplo logo 和 alt text。PR #13645 by @martyndavies。
- 👥 更新 FastAPI GitHub 主题仓库。PR #13667 by @tiangolo。
- 🔧 更新 LinkedIn 和底部的链接。PR #13669 by @tiangolo。
- 🔧 更新赞助商:移除 Bump.sh 和 Coherence。PR #13668 by @tiangolo。
- 👥 更新 FastAPI 人员 - 赞助商。PR #13664 by @tiangolo。
- 👥 更新 FastAPI 人员 - 贡献者和翻译者。PR #13662 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13656 by @pre-commit-ci[bot]。
- ✅ 使用
inline-snapshot
支持测试套件中的不同 Pydantic 版本。PR #12534 by @15r10nk。 - ⬆ astral-sh/setup-uv 从 5 升级到 6。PR #13648 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13634 by @pre-commit-ci[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13619 by @pre-commit-ci[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #13594 by @pre-commit-ci[bot]。
- 👥 更新 FastAPI 人员 - 专家。PR #13568 by @tiangolo。
- 👥 更新 FastAPI GitHub 主题仓库。PR #13565 by @tiangolo。
- 👥 更新 FastAPI 人员 - 赞助商。PR #13559 by @tiangolo。
- 👥 更新 FastAPI 人员 - 贡献者和翻译者。PR #13558 by @tiangolo。
- ⬆ dirty-equals 从 0.8.0 升级到 0.9.0。PR #13561 by @dependabot[bot]。
- 🔧 清理
docs/en/mkdocs.yml
配置文件。PR #13542 by @svlandeg。 - ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12986 by @pre-commit-ci[bot]。
0.115.12¶
修复¶
文档¶
- 📝 更新
docs/en/docs/tutorial/middleware.md
。PR #13444 by @Rishat-F。 - 👥 更新 FastAPI 人员 - 专家。PR #13493 by @tiangolo。
翻译¶
- 🌐 添加
docs/docs/tutorial/metadata.md
页面的乌克兰语翻译。PR #13459 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/response-status-code.md
页面的乌克兰语翻译。PR #13462 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/cookie-param-models.md
页面的乌克兰语翻译。PR #13460 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/header-param-models.md
页面的乌克兰语翻译。PR #13461 by @valentinDruzhinin。 - 🌐 添加
docs/docs/virtual-environments.md
的日语翻译。PR #13304 by @k94-ishi。 - 🌐 添加
docs/docs/tutorial/security/oauth2-jwt.md
的韩语翻译。PR #13333 by @yes0ng。 - 🌐 添加
docs/docs/deployment/cloud.md
的越南语翻译。PR #13407 by @ptt3199。
内部¶
- ⬆ pydantic-ai 从 0.0.15 升级到 0.0.30。PR #13438 by @dependabot[bot]。
- ⬆ sqlmodel 从 0.0.22 升级到 0.0.23。PR #13437 by @dependabot[bot]。
- ⬆ black 从 24.10.0 升级到 25.1.0。PR #13436 by @dependabot[bot]。
- ⬆ ruff 升级到 0.9.4。PR #13299 by @dependabot[bot]。
- 🔧 更新赞助商:暂停 TestDriven。PR #13446 by @tiangolo。
0.115.11¶
修复¶
- 🐛 添加
Annotated
自定义验证(如AfterValidator
)的文档示例和测试(支持),恢复 #13440。PR #13442 by @tiangolo。- 新文档:查询参数和字符串验证 - 自定义验证。
翻译¶
内部¶
- 👥 更新 FastAPI GitHub 主题仓库。PR #13439 by @tiangolo。
- 👥 更新 FastAPI 人员 - 贡献者和翻译者。PR #13432 by @tiangolo。
- 👥 更新 FastAPI 人员 - 赞助商。PR #13433 by @tiangolo。
0.115.10¶
修复¶
升级¶
- ⬆️ 将 Starlette 升级到允许最高 0.46.0:
>=0.40.0,<0.47.0
。PR #13426 by @musicinmybrain。
翻译¶
- 🌐 添加
docs/docs/tutorial/debugging.md
的乌克兰语翻译。PR #13370 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/query-params.md
的乌克兰语翻译。PR #13362 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/path-params.md
的乌克兰语翻译。PR #13354 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/cookie-param-models.md
的日语翻译。PR #13330 by @k94-ishi。 - 🌐 添加
docs/docs/tutorial/body-multiple-params.md
的乌克兰语翻译。PR #13408 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/query-param-models.md
的日语翻译。PR #13323 by @k94-ishi。 - 🌐 添加
docs/docs/tutorial/body-nested-models.md
的乌克兰语翻译。PR #13409 by @valentinDruzhinin。 - 🌐 添加
docs/docs/deployment/versions.md
的越南语翻译。PR #13406 by @ptt3199。 - 🌐 添加
docs/docs/deployment/index.md
的越南语翻译。PR #13405 by @ptt3199。 - 🌐 添加
docs/docs/tutorial/request-forms.md
的乌克兰语翻译。PR #13383 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/testing.md
的乌克兰语翻译。PR #13371 by @valentinDruzhinin。
0.115.9¶
修复¶
重构¶
- ✅ 简化
query_params_str_validations
的测试。PR #13218 by @alv2017。 - ✅ 简化
app_testing
的测试。PR #13220 by @alv2017。 - ✅ 简化
dependency_testing
的测试。PR #13223 by @alv2017。
文档¶
- 🍱 更新赞助商:CodeRabbit logo。PR #13424 by @tiangolo。
- 🩺 统一所有教程翻译中的徽章。PR #13329 by @svlandeg。
- 📝 修复虚拟环境文档中的错别字。PR #13396 by @bullet-ant。
- 🐛 修复官方教程中 Swagger 主题更改示例的问题。PR #13289 by @Zerohertz。
- 📝 在文档中添加更精确的 HTTP 状态码范围描述。PR #13347 by @DanielYang59。
- 🔥 移除 JWT 教程中手动类型注解,以避免类型期望(JWT 不提供更多类型)。PR #13378 by @tiangolo。
- 📝 更新查询参数和字符串验证的文档,移除过时的省略号文档 (
...
)。PR #13377 by @tiangolo。 - ✏️ 移除文档
body-multiple-params
中的重复标题。PR #13345 by @DanielYang59。 - 📝 修复测试徽章。PR #13313 by @esadek。
翻译¶
- 🌐 添加
docs/docs/tutorial/header-params.md
的乌克兰语翻译。PR #13381 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/request-files.md
的乌克兰语翻译。PR #13395 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/request-form-models.md
的乌克兰语翻译。PR #13384 by @valentinDruzhinin。 - 🌐 添加
docs/docs/tutorial/request-forms-and-files.md
的乌克兰语翻译。PR #13386 by @valentinDruzhinin。 - 🌐 更新
docs/docs/help-fastapi.md
的韩语翻译。PR #13262 by @Zerohertz。 - 🌐 添加
docs/docs/advanced/custom-response.md
的韩语翻译。PR #13265 by @11kkw。 - 🌐 更新
docs/docs/tutorial/security/simple-oauth2.md
的韩语翻译。PR #13335 by @yes0ng。 - 🌐 添加
docs/docs/advanced/response-cookies.md
的俄语翻译。PR #13327 by @Stepakinoyan。 - 🌐 添加
docs/docs/tutorial/static-files.md
的越南语翻译。PR #11291 by @ptt3199。 - 🌐 添加
docs/docs/tutorial/dependencies/dependencies-with-yield.md
的韩语翻译。PR #13257 by @11kkw。 - 🌐 添加
docs/docs/virtual-environments.md
的越南语翻译。PR #13282 by @ptt3199。 - 🌐 添加
docs/docs/tutorial/static-files.md
的乌克兰语翻译。PR #13285 by @valentinDruzhinin。 - 🌐 添加
docs/docs/environment-variables.md
的越南语翻译。PR #13287 by @ptt3199。 - 🌐 添加
docs/docs/fastapi-cli.md
的越南语翻译。PR #13294 by @ptt3199。 - 🌐 添加
docs/docs/features.md
的乌克兰语翻译。PR #13308 by @valentinDruzhinin。 - 🌐 添加
docs/docs/learn/index.md
的乌克兰语翻译。PR #13306 by @valentinDruzhinin。 - 🌐 更新
docs/docs/deployment/https.md
的葡萄牙语翻译。PR #13317 by @Joao-Pedro-P-Holanda。 - 🌐 更新
docs/docs/index.md
的葡萄牙语翻译。PR #13328 by @ceb10n。 - 🌐 添加
docs/docs/advanced/websockets.md
的俄语翻译。PR #13279 by @Rishat-F。
内部¶
- ✅ 修复测试
tests/test_modules_same_name_body/test_main.py
中的小错误。PR #13411 by @alv2017。 - 👷 使用
wrangler-action
v3。PR #13415 by @joakimnordling。 - 🔧 更新赞助商:添加 CodeRabbit。PR #13402 by @tiangolo。
- 🔧 更新团队:添加 Ludovico。PR #13390 by @tiangolo。
- 🔧 更新赞助商:添加 LambdaTest。PR #13389 by @tiangolo。
- ⬆ cloudflare/wrangler-action 从 3.13 升级到 3.14。PR #13350 by @dependabot[bot]。
- ⬆ mkdocs-material 从 9.5.18 升级到 9.6.1。PR #13301 by @dependabot[bot]。
- ⬆ pillow 从 11.0.0 升级到 11.1.0。PR #13300 by @dependabot[bot]。
- 👥 更新 FastAPI 人员 - 赞助商。PR #13295 by @tiangolo。
- 👥 更新 FastAPI 人员 - 专家。PR #13303 by @tiangolo。
- 👥 更新 FastAPI GitHub 主题仓库。PR #13302 by @tiangolo。
- 👥 更新 FastAPI 人员 - 贡献者和翻译者。PR #13293 by @tiangolo。
- ⬆ inline-snapshot 从 0.18.1 升级到 0.19.3。PR #13298 by @dependabot[bot]。
- 🔧 更新赞助商,添加 Permit。PR #13288 by @tiangolo。
0.115.8¶
修复¶
- 🐛 修复
OAuth2PasswordRequestForm
和OAuth2PasswordRequestFormStrict
中固定的grant_type
"password" 正则表达式。PR #9783 by @skarfie123。
重构¶
- ✅ 简化 body_multiple_params 的测试。PR #13237 by @alejsdev。
- ♻️ 将重复的代码片段移动到
APIKeyBase
超类中的静态方法。PR #3142 by @ShahriyarR。 - ✅ 简化 request_files 的测试。PR #13182 by @alejsdev。
文档¶
- 📝 将
docs/en/docs/tutorial/extra-models.md
中的单词 "unwrap" 改为 "unpack"。PR #13061 by @timothy-jeong。 - 📝 更新 Request Body 的
tutorial002
以处理tax=0
的情况。PR #13230 by @togogh。 - 👥 更新 FastAPI 人员 - 专家。PR #13269 by @tiangolo。
翻译¶
- 🌐 添加
docs/docs/environment-variables.md
的日语翻译。PR #13226 by @k94-ishi。 - 🌐 添加
docs/docs/advanced/async-tests.md
的俄语翻译。PR #13227 by @Rishat-F。 - 🌐 更新
docs/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
的俄语翻译。PR #13252 by @Rishat-F。 - 🌐 添加
docs/docs/tutorial/bigger-applications.md
的俄语翻译。PR #13154 by @alv2017。
内部¶
- ⬆️ 添加对 Python 3.13 的支持。PR #13274 by @tiangolo。
- ⬆️ 将 AnyIO 的最大版本升级到
>=3.2.1,<5.0.0
。PR #13273 by @tiangolo。 - 🔧 更新赞助商徽章。PR #13271 by @tiangolo。
- ♻️ 修复
notify_translations.py
中针对 PR 标签事件与 workflow_dispatch 的空环境变量处理。PR #13272 by @tiangolo。 - ♻️ 重构并移动
scripts/notify_translations.py
,不再需要自定义 GitHub Action。PR #13270 by @tiangolo。 - 🔨 更新 FastAPI 人员专家脚本,重构并优化数据获取以处理速率限制。PR #13267 by @tiangolo。
- ⬆ pypa/gh-action-pypi-publish 从 1.12.3 升级到 1.12.4。PR #13251 by @dependabot[bot]。
0.115.7¶
升级¶
- ⬆️ 将
python-multipart
升级到 >=0.0.18。PR #13219 by @DanielKusyDev。 - ⬆️ 将 Starlette 升级到允许最高 0.45.0:
>=0.40.0,<0.46.0
。PR #13117 by @Kludex。 - ⬆️ 将
jinja2
升级到 >=3.1.5。PR #13194 by @DanielKusyDev。
重构¶
- ✅ 简化 websockets 的测试。PR #13202 by @alejsdev。
- ✅ 简化 request_form_models 的测试。PR #13183 by @alejsdev。
- ✅ 简化 separate_openapi_schemas 的测试。PR #13201 by @alejsdev。
- ✅ 简化 security 的测试。PR #13200 by @alejsdev。
- ✅ 简化 schema_extra_example 的测试。PR #13197 by @alejsdev。
- ✅ 简化 request_model 的测试。PR #13195 by @alejsdev。
- ✅ 简化 request_forms_and_files 的测试。PR #13185 by @alejsdev。
- ✅ 简化 request_forms 的测试。PR #13184 by @alejsdev。
- ✅ 简化 path_query_params 的测试。PR #13181 by @alejsdev。
- ✅ 简化 path_operation_configurations 的测试。PR #13180 by @alejsdev。
- ✅ 简化 header_params 的测试。PR #13179 by @alejsdev。
- ✅ 简化 extra_models 的测试。PR #13178 by @alejsdev。
- ✅ 简化 extra_data_types 的测试。PR #13177 by @alejsdev。
- ✅ 简化 cookie_params 的测试。PR #13176 by @alejsdev。
- ✅ 简化 dependencies 的测试。PR #13174 by @alejsdev。
- ✅ 简化 body_updates 的测试。PR #13172 by @alejsdev。
- ✅ 简化 body_nested_models 的测试。PR #13171 by @alejsdev。
- ✅ 简化 body_multiple_params 的测试。PR #13170 by @alejsdev。
- ✅ 简化 body_fields 的测试。PR #13169 by @alejsdev。
- ✅ 简化 body 的测试。PR #13168 by @alejsdev。
- ✅ 简化 bigger_applications 的测试。PR #13167 by @alejsdev。
- ✅ 简化 background_tasks 的测试。PR #13166 by @alejsdev。
- ✅ 简化 additional_status_codes 的测试。PR #13149 by @tiangolo。
文档¶
- ✏️ 更新 Strawberry 集成文档。PR #13155 by @kinuax。
- 🔥 移除未使用的 Peewee 教程文件。PR #13158 by @alejsdev。
- 📝 更新 body-nested-model 文档中的图片。PR #11063 by @untilhamza。
- 📝 更新文档中的
fastapi-cli
UI 示例。PR #13107 by @Zhongheng-Cheng。 - 👷 添加新的 GitHub Action 以更新贡献者、翻译者和翻译审阅者。PR #13136 by @tiangolo。
- ✏️ 修复
docs/en/docs/virtual-environments.md
中的错别字。PR #13124 by @tiangolo。 - ✏️ 修复
docs/en/docs/contributing.md
中的错误。PR #12899 by @kingsubin。 - 📝
docs/en/docs/tutorial/sql-databases.md
中的次要更正。PR #13081 by @alv2017。 - 📝 更新
docs/docs/tutorial/query-param-models.md
中的 includes。PR #12994 by @alejsdev。 - ✏️ 修复 README 安装说明中的错别字。PR #13011 by @dave-hay。
- 📝 更新
fastapi-cli
文档。PR #13031 by @tiangolo。
翻译¶
- 🌐 更新
docs/docs/tutorial/request-forms.md
的葡萄牙语翻译。PR #13216 by @Joao-Pedro-P-Holanda。 - 🌐 更新
docs/docs/advanced/settings.md
的葡萄牙语翻译。PR #13209 by @ceb10n。 - 🌐 添加
docs/docs/tutorial/security/oauth2-jwt.md
的葡萄牙语翻译。PR #13205 by @ceb10n。 - 🌐 添加
docs/docs/index.md
的印尼语翻译。PR #13191 by @gerry-sabar。 - 🌐 添加
docs/docs/tutorial/static-files.md
的印尼语翻译。PR #13092 by @guspan-tanadi。 - 🌐 添加
docs/docs/tutorial/security/get-current-user.md
的葡萄牙语翻译。PR #13188 by @ceb10n。 - 🌐 移除
docs/docs/advanced/benchmarks.md
的错误葡萄牙语翻译位置。PR #13187 by @ceb10n。 - 🌐 更新葡萄牙语翻译。PR #13156 by @nillvitor。
- 🌐 更新
docs/docs/tutorial/security/first-steps.md
的俄语翻译。PR #13159 by @Yarous。 - ✏️ 删除
docs/docs/tutorial/path-params-numeric-validations.md
中不必要的空格。PR #12238 by @FakeDocument。 - 🌐 更新
docs/docs/fastapi-cli.md
的中文翻译。PR #13102 by @Zhongheng-Cheng。 - 🌐 使用 PydanticAI 的新 LLM 辅助系统添加所有文档的西班牙语翻译。PR #13122 by @tiangolo。
- 🌐 使用 PydanticAI 的新 LLM 辅助系统更新现有西班牙语翻译。PR #13118 by @tiangolo。
- 🌐 更新
docs/docs/advanced/security/oauth2-scopes.md
的中文翻译。PR #13110 by @ChenPu2002。 - 🌐 添加
docs/docs/tutorial/path-params.md
的印尼语翻译。PR #13086 by @gerry-sabar。 - 🌐 添加
docs/docs/tutorial/sql-databases.md
的韩语翻译。PR #13093 by @GeumBinLee。 - 🌐 更新
docs/docs/async.md
的中文翻译。PR #13095 by @Zhongheng-Cheng。 - 🌐 添加
docs/docs/advanced/openapi-webhooks.md
的中文翻译。PR #13091 by @Zhongheng-Cheng。 - 🌐 添加
docs/docs/advanced/async-tests.md
的中文翻译。PR #13074 by @Zhongheng-Cheng。 - 🌐 添加
docs/docs/fastapi-cli.md
的乌克兰语翻译。PR #13020 by @ykertytsky。 - 🌐 添加
docs/docs/advanced/events.md
的中文翻译。PR #12512 by @ZhibangYue。 - 🌐 添加
/docs/docs/tutorial/sql-databases.md
的俄语翻译。PR #13079 by @alv2017。 - 🌐 更新
docs/docs/advanced/testing-dependencies.md
的中文翻译。PR #13066 by @Zhongheng-Cheng。 - 🌐 更新
docs/docs/tutorial/index.md
的繁体中文翻译。PR #13075 by @codingjenny。 - 🌐 添加
docs/docs/tutorial/sql-databases.md
的中文翻译。PR #13051 by @Zhongheng-Cheng。 - 🌐 更新
docs/docs/tutorial/query-params-str-validations.md
的中文翻译。PR #12928 by @Vincy1230。 - 🌐 添加
docs/docs/tutorial/header-param-models.md
的中文翻译。PR #13040 by @Zhongheng-Cheng。 - 🌐 更新
docs/docs/tutorial/path-params.md
的中文翻译。PR #12926 by @Vincy1230。 - 🌐 更新
docs/docs/tutorial/first-steps.md
的中文翻译。PR #12923 by @Vincy1230。 - 🌐 更新
docs/docs/deployment/docker.md
的俄语翻译。PR #13048 by @anklav24。 - 🌐 添加
docs/docs/advanced/generate-clients.md
的葡萄牙语翻译。PR #13030 by @vitumenezes。 - 🌐 添加
docs/docs/tutorial/first-steps.md
的印尼语翻译。PR #13042 by @gerry-sabar。 - 🌐 添加
docs/docs/tutorial/cookie-param-models.md
的中文翻译。PR #13038 by @Zhongheng-Cheng。 - 🌐 添加
docs/docs/tutorial/request-form-models.md
的中文翻译。PR #13045 by @Zhongheng-Cheng。 - 🌐 添加
docs/docs/virtual-environments.md
的俄语翻译。PR #13026 by @alv2017。 - 🌐 添加
docs/docs/tutorial/testing.md
的韩语翻译。PR #12968 by @jts8257。 - 🌐 添加
docs/docs/advanced/async-test.md
的韩语翻译。PR #12918 by @icehongssii。 - 🌐 添加
docs/docs/tutorial/security/oauth2-jwt.md
的俄语翻译。PR #10601 by @AlertRED。 - 🌐 添加
docs/docs/tutorial/security/simple-oauth2.md
的俄语翻译。PR #10599 by @AlertRED。 - 🌐 添加
docs/docs/tutorial/security/get-current-user.md
的俄语翻译。PR #10594 by @AlertRED。 - 🌐 添加
docs/docs/features.md
的繁体中文翻译。PR #12441 by @codingjenny。 - 🌐 添加
docs/docs/virtual-environments.md
的繁体中文翻译。PR #12791 by @Vincy1230。 - 🌐 添加
docs/docs/advanced/templates.md
的韩语翻译。PR #12726 by @Heumhub。 - 🌐 添加
docs/docs/fastapi-cli.md
的俄语翻译。PR #13041 by @alv2017。 - 🌐 添加
docs/docs/tutorial/cookie-param-models.md
的韩语翻译。PR #13000 by @hard-coders。 - 🌐 添加
docs/docs/tutorial/header-param-models.md
的韩语翻译。PR #13001 by @hard-coders。 - 🌐 添加
docs/docs/tutorial/request-form-models.md
的韩语翻译。PR #13002 by @hard-coders。 - 🌐 添加
docs/docs/tutorial/request-forms.md
的韩语翻译。PR #13003 by @hard-coders。 - 🌐 添加
docs/docs/resources/index.md
的韩语翻译。PR #13004 by @hard-coders。 - 🌐 添加
docs/docs/how-to/configure-swagger-ui.md
的韩语翻译。PR #12898 by @nahyunkeem。 - 🌐 添加
docs/docs/advanced/additional-status-codes.md
的韩语翻译。PR #12715 by @nahyunkeem。 - 🌐 添加
docs/docs/tutorial/first-steps.md
的繁体中文翻译。PR #12467 by @codingjenny。
内部¶
- 🔧 添加 Pydantic 2 trove 分类器。PR #13199 by @johnthagen。
- 👥 更新 FastAPI 人员 - 赞助商。PR #13231 by @tiangolo。
- 👷 重构 FastAPI People Sponsors 以使用 2 个令牌。PR #13228 by @tiangolo。
- 👷 更新 FastAPI People - Sponsors 的令牌。PR #13225 by @tiangolo。
- 👷 为 FastAPI People - Sponsors 添加独立的 CI 自动化。PR #13221 by @tiangolo。
- 👷 添加 Smokeshow 重试机制。PR #13151 by @tiangolo。
- 🔧 更新 Speakeasy 赞助商图形。PR #13147 by @chailandau。
- 👥 更新 FastAPI GitHub 主题仓库。PR #13146 by @tiangolo。
- 👷♀️ 添加 GitHub Topic Repositories 的脚本并更新外部链接。PR #13135 by @alejsdev。
- 👥 更新 FastAPI 人员 - 贡献者和翻译者。PR #13145 by @tiangolo。
- ⬆ markdown-include-variants 从 0.0.3 升级到 0.0.4。PR #13129 by @dependabot[bot]。
- ⬆ inline-snapshot 从 0.14.0 升级到 0.18.1。PR #13132 by @dependabot[bot]。
- ⬆ mkdocs-macros-plugin 从 1.0.5 升级到 1.3.7。PR #13133 by @dependabot[bot]。
- 🔨 添加内部脚本以使用 PydanticAI 生成语言翻译,包括西班牙语提示。PR #13123 by @tiangolo。
- ⬆ astral-sh/setup-uv 从 4 升级到 5。PR #13096 by @dependabot[bot]。
- 🔧 更新赞助商:将 CryptAPI 更名为 BlockBee。PR #13078 by @tiangolo。
- ⬆ pypa/gh-action-pypi-publish 从 1.12.2 升级到 1.12.3。PR #13055 by @dependabot[bot]。
- ⬆ types-ujson 从 5.7.0.1 升级到 5.10.0.20240515。PR #13018 by @dependabot[bot]。
- ⬆ black 从 24.3.0 升级到 24.10.0。PR #13014 by @dependabot[bot]。
- ⬆ inline-snapshot 从 0.13.0 升级到 0.14.0。PR #13017 by @dependabot[bot]。
- ⬆ dirty-equals 从 0.6.0 升级到 0.8.0。PR #13015 by @dependabot[bot]。
- ⬆ cloudflare/wrangler-action 从 3.12 升级到 3.13。PR #12996 by @dependabot[bot]。
- ⬆ astral-sh/setup-uv 从 3 升级到 4。PR #12982 by @dependabot[bot]。
- 🔧 移除
notify-translations.yml
中重复的 actions/checkout。PR #12915 by @tinyboxvk。 - 🔧 更新团队成员。PR #13033 by @tiangolo。
- 📝 更新赞助商:移除 Codacy。PR #13032 by @tiangolo。
0.115.6¶
修复¶
重构¶
文档¶
- 📝 使用自动化脚本更新文档中的 includes 格式。PR #12950 by @tiangolo。
- 📝 更新
docs/docs/advanced/using-request-directly.md
的 includes。PR #12685 by @alissadb。 - 📝 更新
docs/docs/how-to/conditional-openapi.md
的 includes。PR #12689 by @alissadb。
翻译¶
- 🌐 添加
docs/docs/async.md
的繁体中文翻译。PR #12990 by @ILoveSorasakiHina。 - 🌐 添加
docs/docs/tutorial/query-param-models.md
的繁体中文翻译。PR #12932 by @Vincy1230。 - 🌐 添加
docs/docs/advanced/testing-dependencies.md
的韩语翻译。PR #12992 by @Limsunoh。 - 🌐 添加
docs/docs/advanced/websockets.md
的韩语翻译。PR #12991 by @kwang1215。 - 🌐 添加
docs/docs/tutorial/response-model.md
的葡萄牙语翻译。PR #12933 by @AndreBBM。 - 🌐 添加
docs/docs/advanced/middlewares.md
的韩语翻译。PR #12753 by @nahyunkeem。 - 🌐 添加
docs/docs/advanced/openapi-webhooks.md
的韩语翻译。PR #12752 by @saeye。 - 🌐 添加
docs/docs/tutorial/query-param-models.md
的中文翻译。PR #12931 by @Vincy1230。 - 🌐 添加
docs/docs/tutorial/query-param-models.md
的俄语翻译。PR #12445 by @gitgernit。 - 🌐 添加
docs/docs/tutorial/query-param-models.md
的韩语翻译。PR #12940 by @jts8257。 - 🔥 移除
docs/docs/tutorial/sql-databases.md
的过时中文教程翻译,它引用了仓库中不再存在的文件。PR #12949 by @tiangolo。
内部¶
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12954 by @pre-commit-ci[bot]。
0.115.5¶
重构¶
文档¶
- 📝 更新
docs/en/docs/tutorial/body.md
的 includes。PR #12757 by @gsheni。 - 📝 更新
docs/en/docs/advanced/testing-dependencies.md
的 includes。PR #12647 by @AyushSinghal1794。 - 📝 更新
docs/en/docs/tutorial/metadata.md
的 includes。PR #12773 by @Nimitha-jagadeesha。 - 📝 更新
docs/en/docs/tutorial/dependencies/dependencies-with-yield.md
。PR #12045 by @xuvjso。 - 📝 更新
docs/en/docs/tutorial/dependencies/global-dependencies.md
的 includes。PR #12653 by @vishnuvskvkl。 - 📝 更新
docs/en/docs/tutorial/body-updates.md
的 includes。PR #12712 by @davioc。 - 📝 移除项目生成器中对 Celery 的提及。PR #12742 by @david-caro。
- 📝 更新
docs/en/docs/tutorial/header-param-models.md
的 includes。PR #12814 by @zhaohan-dong。 - 📝 更新
contributing.md
文档,包括不翻译此页的说明。PR #12841 by @tiangolo。 - 📝 更新
docs/en/docs/tutorial/request-forms.md
的 includes。PR #12648 by @vishnuvskvkl。 - 📝 更新
docs/en/docs/tutorial/request-form-models.md
的 includes。PR #12649 by @vishnuvskvkl。 - 📝 更新
docs/en/docs/tutorial/security/oauth2-jwt.md
的 includes。PR #12650 by @OCE1960。 - 📝 更新
docs/docs/tutorial/first-steps.md
的 includes。PR #12754 by @MxPy。 - 📝 更新
docs/docs/advanced/wsgi.md
的 includes。PR #12769 by @Nimitha-jagadeesha。 - 📝 更新
docs/en/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
的 includes。PR #12815 by @handabaldeep。 - 📝 更新
docs/en/docs/tutorial/dependencies/classes-as-dependencies.md
的 includes。PR #12813 by @handabaldeep。 - ✏️ 修复
docs/en/docs/tutorial/middleware.md
中的错误。PR #12819 by @alejsdev。 - 📝 更新
docs/en/docs/tutorial/security/get-current-user.md
的 includes。PR #12645 by @OCE1960。 - 📝 更新
docs/en/docs/tutorial/security/first-steps.md
的 includes。PR #12643 by @OCE1960。 - 📝 更新
docs/docs/advanced/additional-responses.md
的 includes。PR #12821 by @zhaohan-dong。 - 📝 更新
docs/en/docs/advanced/generate-clients.md
的 includes。PR #12642 by @AyushSinghal1794。 - 📝 修复新语法中 admonition 双引号的问题。PR #12835 by @tiangolo。
- 📝 更新
docs/docs/advanced/additional-responses.md
的 includes。PR #12828 by @zhaohan-dong。 - 📝 更新
docs/en/docs/tutorial/path-params-numeric-validations.md
的 includes。PR #12825 by @zhaohan-dong。 - 📝 更新
docs/en/docs/advanced/testing-websockets.md
的 includes。PR #12761 by @hamidrasti。 - 📝 更新
docs/en/docs/advanced/using-request-directly.md
的 includes。PR #12760 by @hamidrasti。 - 📝 更新
docs/advanced/wsgi.md
的 includes。PR #12758 by @hamidrasti。 - 📝 更新
docs/docs/tutorial/middleware.md
的 includes。PR #12729 by @paintdog。 - 📝 更新
docs/en/docs/tutorial/schema-extra-example.md
的 includes。PR #12822 by @tiangolo。 - 📝 更新
docs/docs/advanced/additional-responses.md
的 includes。PR #12634 by @fegmorte。 - 📝 更新
docs/docs/advanced/path-operation-advanced-configuration.md
的 includes。PR #12633 by @kantandane。 - 📝 更新
docs/docs/advanced/response-directly.md
的 includes。PR #12632 by @kantandane。 - 📝 更新
docs/en/docs/tutorial/header-params.md
的 includes。PR #12640 by @vishnuvskvkl。 - 📝 更新
docs/en/docs/tutorial/cookie-param-models.md
的 includes。PR #12639 by @vishnuvskvkl。 - 📝 更新
docs/en/docs/tutorial/extra-models.md
的 includes。PR #12638 by @vishnuvskvkl。 - 📝 更新
docs/en/docs/tutorial/cors.md
的 includes。PR #12637 by @vishnuvskvkl。 - 📝 更新
docs/en/docs/tutorial/dependencies/sub-dependencies.md
的 includes。PR #12810 by @handabaldeep。 - 📝 更新
docs/en/docs/tutorial/body-nested-models.md
的 includes。PR #12812 by @zhaohan-dong。 - 📝 更新
docs/en/docs/tutorial/path-operation-configuration.md
中的包含文件。PR #12809 by @AlexWendland。 - 📝 更新
docs/en/docs/tutorial/request-files.md
中的包含文件。PR #12818 by @zhaohan-dong。 - 📝 更新
docs/en/docs/tutorial/query-param-models.md
的包含文件。PR #12817 by @handabaldeep。 - 📝 更新
docs/en/docs/tutorial/path-params.md
中的包含文件。PR #12811 by @AlexWendland。 - 📝 更新
docs/en/docs/tutorial/response-model.md
中的包含文件。PR #12621 by @kantandane。 - 📝 更新
docs/en/docs/advanced/websockets.md
中的包含文件。PR #12606 by @vishnuvskvkl。 - 📝 更新
docs/en/docs/tutorial/cookie-params.md
的包含文件。PR #12808 by @handabaldeep。 - 📝 更新
docs/en/docs/tutorial/middleware.md
中的包含文件。PR #12807 by @AlexWendland。 - 📝 更新
docs/en/docs/advanced/sub-applications.md
中的包含文件。PR #12806 by @zhaohan-dong。 - 📝 更新
docs/en/docs/advanced/response-headers.md
中的包含文件。PR #12805 by @zhaohan-dong。 - 📝 更新
docs/docs/tutorial/first-steps.md
中的包含文件。PR #12594 by @kantandane。 - 📝 更新
docs/en/docs/advanced/response-cookies.md
中的包含文件。PR #12804 by @zhaohan-dong。 - 📝 更新
docs/en/docs/advanced/path-operation-advanced-configuration.md
中的包含文件。PR #12802 by @zhaohan-dong。 - 📝 更新
docs/en/docs/advanced/response-directly.md
的包含文件。PR #12803 by @handabaldeep。 - 📝 更新
docs/docs/tutorial/background-tasks.md
中的包含文件。PR #12798 by @zhaohan-dong。 - 📝 更新
docs/docs/tutorial/body-multiple-params.md
的包含文件。PR #12699 by @alissadb。 - 📝 更新
docs/docs/tutorial/body-updates.md
中的包含文件。PR #12799 by @AlexWendland。 - 📝 更新
docs/en/docs/advanced/response-change-status-code.md
的包含文件。PR #12801 by @handabaldeep。 - 📝 更新
docs/en/docs/advanced/openapi-callbacks.md
的包含文件。PR #12800 by @handabaldeep。 - 📝 更新
docs/docs/tutorial/body-multiple-params.md
中的包含文件。PR #12598 by @kantandane。 - 📝 更新
docs/en/docs/tutorial/body-multiple-params.md
中的包含文件。PR #12593 by @Tashanam-Shahbaz。 - 📝 更新
docs/docs/tutorial/background-tasks.md
中的包含文件。PR #12736 by @bhunao。 - 📝 更新
docs/en/docs/advanced/custom-response.md
的包含文件。PR #12797 by @handabaldeep。 - 📝 更新
docs/docs/python-types.md
的包含文件。PR #12671 by @ceb10n。 - 📝 更新
docs/docs/python-types.md
的包含文件。PR #12660 by @alissadb。 - 📝 更新
docs/docs/advanced/dataclasses.md
的包含文件。PR #12658 by @alissadb。 - 📝 更新
docs/docs/tutorial/path-params.md
中的包含文件。PR #12592 by @kantandane。 - 📝 更新
docs/docs/how-to/configure-swagger-ui.md
的包含文件。PR #12690 by @alissadb。 - 📝 更新
docs/en/docs/advanced/security/oauth2-scopes.md
中的包含文件。PR #12572 by @krishnamadhavan。 - 📝 更新
docs/en/docs/how-to/conditional-openapi.md
的包含文件。PR #12624 by @rabinlamadong。 - 📝 更新
docs/en/docs/tutorial/dependencies/index.md
中的包含文件。PR #12615 by @bharara。 - 📝 更新
docs/en/docs/tutorial/response-status-code.md
中的包含文件。PR #12620 by @kantandane。 - 📝 更新
docs/en/docs/how-to/custom-docs-ui-assets.md
中的包含文件。PR #12623 by @rabinlamadong。 - 📝 更新
docs/en/docs/advanced/openapi-webhooks.md
中的包含文件。PR #12605 by @salmantec。 - 📝 更新
docs/en/docs/advanced/events.md
中的包含文件。PR #12604 by @salmantec。 - 📝 更新
docs/en/docs/advanced/dataclasses.md
中的包含文件。PR #12603 by @salmantec。 - 📝 更新
docs/docs/tutorial/cookie-params.md
中的包含文件。PR #12602 by @antonyare93。 - 📝 更新
docs/docs/tutorial/path-params-numeric-validations.md
中的包含文件。PR #12601 by @kantandane。 - 📝 更新
docs/docs/tutorial/background-tasks.md
中的包含文件。PR #12600 by @kantandane。 - 📝 更新
docs/en/docs/tutorial/encoder.md
中的包含文件。PR #12597 by @tonyjly。 - 📝 更新
docs/en/docs/how-to/custom-docs-ui-assets.md
中的包含文件。PR #12557 by @philipokiokio。 - 🎨 调整间距。PR #12635 by @alejsdev。
- 📝 更新
docs/en/docs/how-to/custom-request-and-route.md
中的包含文件。PR #12560 by @philipokiokio。
翻译¶
- 🌐 为
docs/docs/advanced/testing-websockets.md
添加韩语翻译。PR #12739 by @Limsunoh。 - 🌐 为
docs/docs/environment-variables.md
添加繁体中文翻译。PR #12785 by @Vincy1230。 - 🌐 为
docs/docs/environment-variables.md
添加中文翻译。PR #12784 by @Vincy1230。 - 🌐 为
ko/docs/advanced/response-headers.md
添加韩语翻译。PR #12740 by @kwang1215。 - 🌐 为
docs/docs/virtual-environments.md
添加中文翻译。PR #12790 by @Vincy1230。 - 🌐 为
/docs/docs/environment-variables.md
添加韩语翻译。PR #12526 by @Tolerblanc。 - 🌐 为
docs/docs/history-design-future.md
添加韩语翻译。PR #12646 by @saeye。 - 🌐 为
docs/docs/advanced/advanced-dependencies.md
添加韩语翻译。PR #12675 by @kim-sangah。 - 🌐 为
docs/docs/how-to/conditional-openapi.md
添加韩语翻译。PR #12731 by @sptcnl。 - 🌐 为
docs/docs/advanced/using_request_directly.md
添加韩语翻译。PR #12738 by @kwang1215。 - 🌐 为
docs/docs/advanced/testing-events.md
添加韩语翻译。PR #12741 by @9zimin9。 - 🌐 为
docs/docs/security/index.md
添加韩语翻译。PR #12743 by @kim-sangah。 - 🌐 为
docs/docs/advanced/path-operation-advanced-configuration.md
添加葡萄牙语翻译。PR #12762 by @Joao-Pedro-P-Holanda。 - 🌐 为
docs/docs/advanced/wsgi.md
添加韩语翻译。PR #12659 by @Limsunoh。 - 🌐 为
docs/docs/advanced/websockets.md
添加葡萄牙语翻译。PR #12703 by @devfernandoa。 - 🌐 为
docs/docs/tutorial/security/simple-oauth2.md
添加葡萄牙语翻译。PR #12520 by @LidiaDomingos。 - 🌐 为
docs/docs/advanced/response-directly.md
添加韩语翻译。PR #12674 by @9zimin9。 - 🌐 为
docs/docs/advanced/middleware.md
添加葡萄牙语翻译。PR #12704 by @devluisrodrigues。 - 🌐 为
docs/docs/advanced/openapi-callbacks.md
添加葡萄牙语翻译。PR #12705 by @devfernandoa。 - 🌐 为
docs/docs/tutorial/request-files.md
添加葡萄牙语翻译。PR #12706 by @devluisrodrigues。 - 🌐 为
docs/docs/advanced/custom-response.md
添加葡萄牙语翻译。PR #12631 by @Joao-Pedro-P-Holanda。 - 🌐 为
docs/docs/tutorial/metadata.md
添加葡萄牙语翻译。PR #12538 by @LinkolnR。 - 🌐 为
docs/docs/tutorial/metadata.md
添加韩语翻译。PR #12541 by @kwang1215。 - 🌐 为
docs/docs/advanced/response-cookies.md
添加韩语翻译。PR #12546 by @kim-sangah。 - 🌐 为
docs/docs/fastapi-cli.md
添加韩语翻译。PR #12515 by @dhdld。 - 🌐 为
docs/docs/advanced/response-change-status-code.md
添加韩语翻译。PR #12547 by @9zimin9。
内部¶
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12907 by @pre-commit-ci[bot]。
- 🔨 更新文档预览脚本,以显示之前版本和英文版本。PR #12856 by @tiangolo。
- ⬆ 将 tiangolo/latest-changes 从 0.3.1 升级到 0.3.2。PR #12794 by @dependabot[bot]。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.12.0 升级到 1.12.2。PR #12788 by @dependabot[bot]。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.11.0 升级到 1.12.0。PR #12781 by @dependabot[bot]。
- ⬆ 将 cloudflare/wrangler-action 从 3.11 升级到 3.12。PR #12777 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12766 by @pre-commit-ci[bot]。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.10.3 升级到 1.11.0。PR #12721 by @dependabot[bot]。
- ⬆ 更新 pre-commit 要求从 <4.0.0,>=2.17.0 到 >=2.17.0,<5.0.0。PR #12749 by @dependabot[bot]。
- ⬆ 将 typer 从 0.12.3 升级到 0.12.5。PR #12748 by @dependabot[bot]。
- ⬆ 更新 flask 要求从 <3.0.0,>=1.1.2 到 >=1.1.2,<4.0.0。PR #12747 by @dependabot[bot]。
- ⬆ 将 pillow 从 10.4.0 升级到 11.0.0。PR #12746 by @dependabot[bot]。
- ⬆ 更新 pytest 要求从 <8.0.0,>=7.1.3 到 >=7.1.3,<9.0.0。PR #12745 by @dependabot[bot]。
- 🔧 更新赞助商:添加 Render。PR #12733 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12707 by @pre-commit-ci[bot]。
0.115.4¶
重构¶
文档¶
- 📝 更新
docs/docs/tutorial/body.md
中的包含文件。PR #12596 by @kantandane。 - 📝 更新
docs/docs/tutorial/debugging.md
中的包含文件。PR #12595 by @kantandane。 - 📝 更新
docs/docs/tutorial/query-params-str-validations.md
中的包含文件。PR #12591 by @kantandane。 - 📝 更新
docs/docs/tutorial/query-params.md
中的包含文件。PR #12589 by @kantandane。 - 📝 更新
docs/en/tutorial/body-fields.md
中的包含文件。PR #12588 by @lucaromagnoli。 - 📝 更新
docs/docs/tutorial/response-status-code.md
中的包含文件。PR #12585 by @abejaranoh。 - 📝 更新
docs/en/docs/tutorial/body.md
中的包含文件。PR #12586 by @lucaromagnoli。 - 📝 更新
docs/en/docs/advanced/behind-a-proxy.md
中的包含文件。PR #12583 by @imjuanleonard。 - 📝 更新
docs/docs/tutorial/first-steps.md
的包含文件语法。PR #12584 by @sebkozlo。 - 📝 更新
docs/en/docs/advanced/middleware.md
中的包含文件。PR #12582 by @montanarograziano。 - 📝 更新
docs/en/docs/advanced/additional-status-codes.md
中的包含文件。PR #12577 by @krishnamadhavan。 - 📝 更新
docs/en/docs/advanced/advanced-dependencies.md
中的包含文件。PR #12578 by @krishnamadhavan。 - 📝 更新
docs/en/docs/advanced/additional-responses.md
中的包含文件。PR #12576 by @krishnamadhavan。 - 📝 更新
docs/en/docs/tutorial/static-files.md
中的包含文件。PR #12575 by @lucaromagnoli。 - 📝 更新
docs/en/docs/advanced/async-tests.md
中的包含文件。PR #12568 by @krishnamadhavan。 - 📝 更新
docs/docs/advanced/behind-a-proxy.md
中的包含文件。PR #12563 by @asmioglou。 - 📝 更新
docs/docs/advanced/security/http-basic-auth.md
中的包含文件。PR #12561 by @Nimitha-jagadeesha。 - 📝 更新
docs/en/docs/tutorial/background-tasks.md
中的包含文件。PR #12559 by @FarhanAliRaza。 - 📝 更新
docs/docs/python-types.md
中的包含文件。PR #12558 by @Ismailtlem。 - 📝 更新
docs/en/docs/how-to/graphql.md
中的包含文件。PR #12564 by @philipokiokio。 - 📝 更新
docs/en/docs/how-to/extending-openapi.md
中的包含文件。PR #12562 by @philipokiokio。 - 📝 更新
docs/en/docs/how-to/configure-swagger-ui.md
的包含文件。PR #12556 by @tiangolo。 - 📝 更新
docs/en/docs/how-to/separate-openapi-schemas.md
的包含文件。PR #12555 by @tiangolo。 - 📝 更新
docs/en/docs/advanced/security/http-basic-auth.md
的包含文件。PR #12553 by @tiangolo。 - 📝 更新
docs/en/docs/tutorial/first-steps.md
中的包含文件。PR #12552 by @tiangolo。 - 📝 更新
docs/en/docs/python-types.md
中的包含文件。PR #12551 by @tiangolo。 - 📝 修复 OAuth2 文档中的断链。PR #12550 by @tiangolo。
- 📝 添加外部链接:FastAPI do Zero。PR #12533 by @rennerocha。
- 📝 修复小错别字。PR #12516 by @kkirsche。
- 🌐 修复翻译中的渲染问题。PR #12509 by @alejsdev。
翻译¶
- 📝 更新
docs/docs/advanced/async-tests.md
中的包含文件。PR #12567 by @imjuanleonard。 - 🌐 为
docs/docs/tutorial/sql-databases.md
添加葡萄牙语翻译。PR #12530 by @ilacftemp。 - 🌐 为
docs/docs/benchmarks.md
添加韩语翻译。PR #12540 by @Limsunoh。 - 🌐 为
docs/docs/how-to/separate-openapi-schemas.md
添加葡萄牙语翻译。PR #12518 by @ilacftemp。 - 🌐 更新
docs/docs/deployment/index.md
的繁体中文翻译。PR #12521 by @codingjenny。 - 🌐 更新
docs/docs/deployment/cloud.md
的繁体中文翻译。PR #12522 by @codingjenny。 - 🌐 更新
docs/docs/how-to/index.md
的繁体中文翻译。PR #12523 by @codingjenny。 - 🌐 更新
docs/docs/tutorial/index.md
的繁体中文翻译。PR #12524 by @codingjenny。 - 🌐 为
docs/docs/how-to/index.md
添加繁体中文翻译。PR #12468 by @codingjenny。 - 🌐 为
docs/docs/tutorial/index.md
添加繁体中文翻译。PR #12466 by @codingjenny。 - 🌐 为
docs/docs/tutorial/header-param-models.md
添加葡萄牙语翻译。PR #12437 by @Joao-Pedro-P-Holanda。 - 🌐 为
docs/docs/how-to/extending-openapi.md
添加葡萄牙语翻译。PR #12470 by @ilacftemp。 - 🌐 为
docs/docs/advanced/dataclasses.md
添加葡萄牙语翻译。PR #12475 by @leoscarlato。 - 🌐 为
docs/docs/how-to/custom-request-and-route.md
添加葡萄牙语翻译。PR #12483 by @devfernandoa。
内部¶
- ⬆ 将 cloudflare/wrangler-action 从 3.9 升级到 3.11。PR #12544 by @dependabot[bot]。
- 👷 更新文档预览脚本以处理缺失的部署评论。PR #12527 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12505 by @pre-commit-ci[bot]。
0.115.3¶
升级¶
文档¶
- 📝 修复文档中的断链。PR #12495 by @eltonjncorreia。
翻译¶
- 🌐 为
docs/docs/fastapi-cli.md
添加繁体中文翻译。PR #12444 by @codingjenny。 - 🌐 为
docs/docs/deployment/index.md
添加繁体中文翻译。PR #12439 by @codingjenny。 - 🌐 为
docs/docs/how-to/testing-database.md
添加葡萄牙语翻译。PR #12472 by @GuilhermeRameh。 - 🌐 为
docs/docs/how-to/custom-docs-ui-assets.md
添加葡萄牙语翻译。PR #12473 by @devluisrodrigues。 - 🌐 为
docs/docs/advanced/response-headers.md
添加葡萄牙语翻译。PR #12458 by @leonardopaloschi。 - 🌐 为
docs/docs/deployment/cloud.md
添加繁体中文翻译。PR #12440 by @codingjenny。 - 🌐 更新
docs/docs/python-types.md
的葡萄牙语翻译。PR #12428 by @ceb10n。 - 🌐 为
docs/docs/environment-variables.md
添加俄语翻译。PR #12436 by @wisderfin。 - 🌐 为
docs/docs/resources/index.md
添加繁体中文翻译。PR #12443 by @codingjenny。 - 🌐 为
docs/docs/about/index.md
添加繁体中文翻译。PR #12438 by @codingjenny。 - 🌐 为
docs/docs/tutorial/query-param-models.md
添加葡萄牙语翻译。PR #12414 by @ceb10n。 - 🌐 移除
docs/docs/deployment.md
的葡萄牙语翻译。PR #12427 by @ceb10n。 - 🌐 为
docs/docs/tutorial/body-updates.md
添加葡萄牙语翻译。PR #12381 by @andersonrocha0。 - 🌐 为
docs/docs/advanced/response-cookies.md
添加葡萄牙语翻译。PR #12417 by @Paulofalcao2002。
内部¶
- 👷 更新问题管理器工作流。PR #12457 by @alejsdev。
- 🔧 更新团队,包含 YuriiMotov 🚀。PR #12453 by @tiangolo。
- 👷 重构 label-approved,使其成为内部脚本而非外部 GitHub Action。PR #12280 by @tiangolo。
- 👷 修复 smokeshow,在 CI 上检出文件。PR #12434 by @tiangolo。
- 👷 在 CI 中使用 uv。PR #12281 by @tiangolo。
- ⬆ 更新 httpx 要求从 <0.25.0,>=0.23.0 到 >=0.23.0,<0.28.0。PR #11509 by @dependabot[bot]。
0.115.2¶
升级¶
0.115.1¶
修复¶
- 🐛 修复带
alias
的 openapi 生成中的响应 kwarg。PR #10895 by @flxdot。 - 🐛 移除 FastAPI 使用 Pydantic v2 时
Required
的遮蔽。PR #12197 by @pachewise。
重构¶
文档¶
- ✨ 添加新的 SQLModel 教程,介绍 SQL 数据库。PR #12285 by @tiangolo。
- 📝 添加外部链接:如何分析 FastAPI 异步请求。PR #12389 by @brouberol。
- 🔧 移除 MkDocs 中
mdx_include
Markdown 扩展的base_path
。PR #12391 by @tiangolo。 - 📝 更新 Swagger UI 配置文档的链接。PR #12264 by @makisukurisu。
- 📝 在
docs/project-generation.md
中添加 Playwright 和 Vite 的链接。PR #12274 by @kayqueGovetri。 - 📝 修复文档中的小错别字。PR #12213 by @svlandeg。
翻译¶
- 🌐 为
docs/docs/tutorial/cookie-param-models.md
添加葡萄牙语翻译。PR #12298 by @ceb10n。 - 🌐 为
docs/docs/how-to/graphql.md
添加葡萄牙语翻译。PR #12215 by @AnandaCampelo。 - 🌐 为
docs/docs/advanced/security/oauth2-scopes.md
添加葡萄牙语翻译。PR #12263 by @ceb10n。 - 🌐 为
docs/docs/deployment/concepts.md
添加葡萄牙语翻译。PR #12219 by @marcelomarkus。 - 🌐 为
docs/docs/how-to/conditional-openapi.md
添加葡萄牙语翻译。PR #12221 by @marcelomarkus。 - 🌐 为
docs/docs/advanced/response-directly.md
添加葡萄牙语翻译。PR #12266 by @Joao-Pedro-P-Holanda。 - 🌐 更新
docs/docs/tutorial/cookie-params.md
的葡萄牙语翻译。PR #12297 by @ceb10n。 - 🌐 修复
docs/docs/tutorial/index.md
的韩语翻译。PR #12278 by @kkotipy。 - 🌐 更新
docs/docs/advanced/security/http-basic-auth.md
的葡萄牙语翻译。PR #12275 by @andersonrocha0。 - 🌐 为
docs/docs/deployment/cloud.md
添加葡萄牙语翻译。PR #12217 by @marcelomarkus。 - ✏️ 修复
docs/docs/python-types.md
中的错别字。PR #12235 by @JavierSanchezCastro。 - 🌐 为
docs/docs/environment-variables.md
添加荷兰语翻译。PR #12200 by @maxscheijen。 - 🌐 为
docs/docs/deployment/manually.md
添加葡萄牙语翻译。PR #12210 by @JoaoGustavoRogel。 - 🌐 为
docs/docs/deployment/server-workers.md
添加葡萄牙语翻译。PR #12220 by @marcelomarkus。 - 🌐 为
docs/docs/how-to/configure-swagger-ui.md
添加葡萄牙语翻译。PR #12222 by @marcelomarkus。
内部¶
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12396 by @pre-commit-ci[bot]。
- 🔨 添加脚本以生成文件的变体。PR #12405 by @tiangolo。
- 🔧 将 speakeasy-api 添加到
sponsors_badge.yml
。PR #12404 by @tiangolo。 - ➕ 添加文档依赖项:markdown-include-variants。PR #12399 by @tiangolo。
- 📝 修复额外的 mdx-base-path 路径。PR #12397 by @tiangolo。
- 👷 调整标签器,使其不覆盖自定义标签。PR #12398 by @tiangolo。
- 👷 更新工作流 deploy-docs-notify URL。PR #12392 by @tiangolo。
- 👷 更新 Cloudflare GitHub Action。PR #12387 by @tiangolo。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.10.1 升级到 1.10.3。PR #12386 by @dependabot[bot]。
- ⬆ 将 mkdocstrings[python] 从 0.25.1 升级到 0.26.1。PR #12371 by @dependabot[bot]。
- ⬆ 将 griffe-typingdoc 从 0.2.6 升级到 0.2.7。PR #12370 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12331 by @pre-commit-ci[bot]。
- 🔧 更新赞助商,移除 Fine.dev。PR #12271 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12253 by @pre-commit-ci[bot]。
- ✏️ 修复 http security 中的 docstring 错别字。PR #12223 by @albertvillanova。
0.115.0¶
亮点¶
现在你可以使用 Pydantic 模型声明 Query
、Header
和 Cookie
参数。🎉
Query
参数模型¶
为 Query
参数使用 Pydantic 模型
from typing import Annotated, Literal
from fastapi import FastAPI, Query
from pydantic import BaseModel, Field
app = FastAPI()
class FilterParams(BaseModel):
limit: int = Field(100, gt=0, le=100)
offset: int = Field(0, ge=0)
order_by: Literal["created_at", "updated_at"] = "created_at"
tags: list[str] = []
@app.get("/items/")
async def read_items(filter_query: Annotated[FilterParams, Query()]):
return filter_query
阅读新文档:查询参数模型。
Header
参数模型¶
为 Header
参数使用 Pydantic 模型
from typing import Annotated
from fastapi import FastAPI, Header
from pydantic import BaseModel
app = FastAPI()
class CommonHeaders(BaseModel):
host: str
save_data: bool
if_modified_since: str | None = None
traceparent: str | None = None
x_tag: list[str] = []
@app.get("/items/")
async def read_items(headers: Annotated[CommonHeaders, Header()]):
return headers
阅读新文档:Header 参数模型。
Cookie
参数模型¶
为 Cookie
参数使用 Pydantic 模型
from typing import Annotated
from fastapi import Cookie, FastAPI
from pydantic import BaseModel
app = FastAPI()
class Cookies(BaseModel):
session_id: str
fatebook_tracker: str | None = None
googall_tracker: str | None = None
@app.get("/items/")
async def read_items(cookies: Annotated[Cookies, Cookie()]):
return cookies
阅读新文档:Cookie 参数模型。
禁止额外查询(Cookie、Header)参数¶
使用 Pydantic 模型限制 Query
参数的额外值(也适用于 Header
和 Cookie
参数)。
为此,请使用 Pydantic 的 model_config = {"extra": "forbid"}
from typing import Annotated, Literal
from fastapi import FastAPI, Query
from pydantic import BaseModel, Field
app = FastAPI()
class FilterParams(BaseModel):
model_config = {"extra": "forbid"}
limit: int = Field(100, gt=0, le=100)
offset: int = Field(0, ge=0)
order_by: Literal["created_at", "updated_at"] = "created_at"
tags: list[str] = []
@app.get("/items/")
async def read_items(filter_query: Annotated[FilterParams, Query()]):
return filter_query
这适用于 Query
、Header
和 Cookie
参数,请阅读新文档
功能¶
翻译¶
内部¶
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12204 by @pre-commit-ci[bot]。
0.114.2¶
修复¶
- 🐛 修复
alias
导致的表单字段回归。PR #12194 by @Wurstnase。
翻译¶
- 🌐 为
docs/docs/tutorial/request-form-models.md
添加葡萄牙语翻译。PR #12175 by @ceb10n。 - 🌐 为
docs/docs/project-generation.md
添加中文翻译。PR #12170 by @waketzheng。 - 🌐 为
docs/docs/python-types.md
添加荷兰语翻译。PR #12158 by @maxscheijen。
内部¶
0.114.1¶
重构¶
文档¶
翻译¶
- 🌐 为
docs/docs/virtual-environments.md
添加葡萄牙语翻译。PR #12163 by @marcelomarkus。 - 🌐 为
docs/docs/environment-variables.md
添加葡萄牙语翻译。PR #12162 by @marcelomarkus。 - 🌐 为
docs/docs/tutorial/testing.md
添加葡萄牙语翻译。PR #12164 by @marcelomarkus。 - 🌐 为
docs/docs/tutorial/debugging.md
添加葡萄牙语翻译。PR #12165 by @marcelomarkus。 - 🌐 为
docs/docs/project-generation.md
添加韩语翻译。PR #12157 by @BORA040126。
内部¶
- ⬆ 将 tiangolo/issue-manager 从 0.5.0 升级到 0.5.1。PR #12173 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12176 by @pre-commit-ci[bot]。
- 👷 更新
issue-manager.yml
。PR #12159 by @tiangolo。 - ✏️ 修复
fastapi/params.py
中的错别字。PR #12143 by @surreal30。
0.114.0¶
你可以将表单字段限制为只包含 Pydantic 模型中声明的字段,并禁止请求中发送的任何额外字段,使用 Pydantic 的 model_config = {"extra": "forbid"}
from typing import Annotated
from fastapi import FastAPI, Form
from pydantic import BaseModel
app = FastAPI()
class FormData(BaseModel):
username: str
password: str
model_config = {"extra": "forbid"}
@app.post("/login/")
async def login(data: Annotated[FormData, Form()]):
return data
阅读新文档:表单模型 - 禁止额外表单字段。
功能¶
文档¶
内部¶
0.113.0¶
现在你可以使用 Pydantic 模型声明表单字段
from typing import Annotated
from fastapi import FastAPI, Form
from pydantic import BaseModel
app = FastAPI()
class FormData(BaseModel):
username: str
password: str
@app.post("/login/")
async def login(data: Annotated[FormData, Form()]):
return data
阅读新文档:表单模型。
功能¶
内部¶
0.112.4¶
此版本主要是大型内部重构,旨在支持 Form
字段的 Pydantic 模型,但该功能将在下一版本中推出。
此版本不应以任何方式影响使用 FastAPI 的应用程序。你甚至不必立即升级到此版本。它只是一个检查点。🤓
重构¶
内部¶
- ⏪️ 暂时还原“✨ 在
Form
参数中添加 Pydantic 模型支持”以进行检查点发布。PR #12128 by @tiangolo。由 PR #12129 恢复。 - ✨ 在
Form
参数中添加对 Pydantic 模型支持。PR #12127 by @tiangolo。由 PR #12128 还原,以发布一个仅包含重构的检查点版本。由 PR #12129 恢复。
0.112.3¶
此版本主要是内部重构,不应以任何方式影响使用 FastAPI 的应用程序。你甚至不必立即升级到此版本。之后将有几个更大的版本发布。🚀
重构¶
- ♻️ 重构内部
check_file_field()
,重命名为ensure_multipart_is_installed()
以明确其目的。PR #12106 by @tiangolo。 - ♻️ 重命名内部
create_response_field()
为create_model_field()
,因为它用于响应模型之外的更多用途。PR #12103 by @tiangolo。 - ♻️ 重构并简化
solve_dependencies()
的内部数据,使用数据类。PR #12100 by @tiangolo。 - ♻️ 重构并简化内部
analyze_param()
,使用数据类而非元组来组织数据。PR #12099 by @tiangolo。 - ♻️ 重构并简化依赖项数据结构,使用数据类。PR #12098 by @tiangolo。
文档¶
- 📝 添加外部链接:FastAPI 中 SQLAlchemy 全局过滤器的技术与应用。PR #12109 by @TheShubhendra。
- 📝 添加关于中间件中
time.perf_counter()
的说明。PR #12095 by @tiangolo。 - 📝 调整中间件代码示例,将
time.time()
改为time.perf_counter()
。PR #11957 by @domdent。 - 🔧 更新赞助商:Coherence。PR #12093 by @tiangolo。
- 📝 修复异步测试示例,避免触发 DeprecationWarning。PR #12084 by @marcinsulikowski。
- 📝 更新
docs_src/path_params_numeric_validations/tutorial006.py
。PR #11478 by @MuhammadAshiqAmeer。 - 📝 更新
docs/en/docs/async.md
中的逗号。PR #12062 by @Alec-Gillis。 - 📝 更新关于提供 FastAPI 的文档:ASGI 服务器、Docker 容器等。PR #12069 by @tiangolo。
- 📝 澄清
response_class
参数、验证以及直接返回响应。PR #12067 by @tiangolo。 - 📝 修复文档中的小错别字和问题。PR #12063 by @svlandeg。
- 📝 在 Docker 文档中添加注释,说明使用
CMD
exec 形式确保优雅关闭和生命周期事件。PR #11960 by @GPla。
翻译¶
- 🌐 为
docs/docs/features.md
添加荷兰语翻译。PR #12101 by @maxscheijen。 - 🌐 为
docs/docs/advanced/testing-events.md
添加葡萄牙语翻译。PR #12108 by @ceb10n。 - 🌐 为
docs/docs/advanced/security/index.md
添加葡萄牙语翻译。PR #12114 by @ceb10n。 - 🌐 为
docs/docs/index.md
添加荷兰语翻译。PR #12042 by @svlandeg。 - 🌐 更新
docs/docs/how-to/index.md
的中文翻译。PR #12070 by @synthpop123。
内部¶
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12115 by @pre-commit-ci[bot]。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.10.0 升级到 1.10.1。PR #12120 by @dependabot[bot]。
- ⬆ 将 pillow 从 10.3.0 升级到 10.4.0。PR #12105 by @dependabot[bot]。
- 💚 使用
upload-artifact
GH action 时,将include-hidden-files
设置为True
。PR #12118 by @svlandeg。 - ⬆ 将 pypa/gh-action-pypi-publish 从 1.9.0 升级到 1.10.0。PR #12112 by @dependabot[bot]。
- 🔧 更新赞助商链接:Coherence。PR #12097 by @tiangolo。
- 🔧 更新标签器配置以处理赞助数据。PR #12096 by @tiangolo。
- 🔧 更新赞助商,移除 Kong。PR #12085 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12076 by @pre-commit-ci[bot]。
- 👷 更新
latest-changes
GitHub Action。PR #12073 by @tiangolo。
0.112.2¶
修复¶
- 🐛 修复 Param 和 Body 类的
allow_inf_nan
选项。PR #11867 by @giunio-prc。 - 🐛 确保
app.include_router
合并嵌套的生命周期。PR #9630 by @Lancetnik。
重构¶
- 🎨 修复半内部
FastAPI.add_api_route()
的类型注解。PR #10240 by @ordinary-jamie。 - ⬆️ 升级 Ruff 版本并重新格式化。PR #12032 by @tiangolo。
文档¶
- 📝 修复
docs/en/docs/virtual-environments.md
中的一个错别字。PR #12064 by @aymenkrifa。 - 📝 添加关于环境变量和虚拟环境的文档。PR #12054 by @tiangolo。
- 📝 在异步文档中添加 Asyncer 提及。PR #12037 by @tiangolo。
- 📝 将功能文档移动到顶层,以改进主页菜单。PR #12036 by @tiangolo。
- ✏️ 修复
Security
参考示例中的导入错别字。PR #11168 by @0shah0。 - 📝 突出显示教程
docs/en/docs/tutorial/body-multiple-params.md
中的正确行。PR #11978 by @svlandeg。 - 🔥 从 Advanced Middleware 文档中移除 Sentry 链接。PR #12031 by @alejsdev。
- 📝 澄清翻译管理任务,一份 PR 中的多个文件。PR #12030 by @tiangolo。
- 📝 在“OpenAPI 中的附加响应”部分中编辑 OpenAPI“响应对象”和“响应对象”部分的链接。PR #11996 by @VaitoSoi。
- 🔨 指定带连字符的
email-validator
依赖项。PR #11515 by @jirikuncar。 - 🌐 为
docs/docs/project-generation.md
添加西班牙语翻译。PR #11947 by @alejsdev。 - 📝 修复小错别字。PR #12026 by @MicaelJarniac。
- 📝 多项文档改进、调整和澄清。PR #11390 by @nilslindemann。
- 📝 添加
GZipMiddleware
文档中缺失的compresslevel
参数。PR #11350 by @junah201。 - 📝 修复测试文档中当项目已存在时响应代码不一致的问题。PR #11818 by @lokomilo。
- 📝 更新
docs/en/docs/tutorial/body.md
,添加 Python 3.10 联合类型示例。PR #11415 by @rangzen。
翻译¶
- 🌐 为
docs/docs/tutorial/request_file.md
添加葡萄牙语翻译。PR #12018 by @Joao-Pedro-P-Holanda。 - 🌐 为
docs/docs/learn/index.md
添加日语翻译。PR #11592 by @ukwhatn。 - 📝 更新西班牙语翻译文档以保持一致性。PR #12044 by @alejsdev。
- 🌐 更新
docs/docs/tutorial/dependencies/dependencies-with-yield.md
的中文翻译。PR #12028 by @xuvjso。 - 📝 更新 FastAPI 人员,不翻译以获得最新信息。PR #12034 by @tiangolo。
- 🌐 更新
docs/docs/benchmarks.md
的乌尔都语翻译。PR #10046 by @AhsanSheraz。
内部¶
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #12046 by @pre-commit-ci[bot]。
- 🔧 更新覆盖率配置文件。PR #12035 by @tiangolo。
- 🔨 标准化 shell 脚本中的 shebang。PR #11942 by @gitworkflows。
- ⬆ 更新 sqlalchemy 要求从 <1.4.43,>=1.3.18 到 >=1.3.18,<2.0.33。PR #11979 by @dependabot[bot]。
- 🔊 移除旧的忽略警告。PR #11950 by @tiangolo。
- ⬆️ 升级用于文档的 griffe-typingdoc。PR #12029 by @tiangolo。
- 🙈 将 .coverage* 添加到
.gitignore
。PR #11940 by @gitworkflows。 - ⚙️ 记录并显示测试覆盖率上下文(哪些测试覆盖了哪些行)。PR #11518 by @slafs。
0.112.1¶
升级¶
当你使用 pip install "fastapi[all]"
安装时,这些依赖项仍然会被安装。但它们不包含在 pip install fastapi
中。
- 📝 恢复 Swagger-UI 链接以使用最新版本。PR #11459 by @UltimateLobster。
- 文档¶
- ✏️ 在
docs/en/docs/fastapi-cli.md
中重新措辞。PR #11716 by @alejsdev。
📝 更新所有文档中的 Hypercorn 链接。PR #11744 by @kittydoor。
- 📝 更新文档,将 Ariadne 引用从 Starlette 改为 FastAPI。PR #11797 by @DamianCzajkowski。
- 📝 更新 fastapi instrumentation 外部链接。PR #11317 by @softwarebloat。
- ✏️ 修复文档中 alembic 示例仓库的链接。PR #11628 by @augiwan。
- ✏️ 更新
docs/en/docs/fastapi-cli.md
。PR #11715 by @alejsdev。 - 📝 更新外部链接。PR #11500 by @devon2018。
- 📝 添加外部链接:FastAPI 教程,Python 中最好的框架?PR #11618 by @EduardoZepeda。
- 📝 修复
docs/en/docs/tutorial/body-multiple-params.md
中的错别字。PR #11698 by @mwb-u。 - 📝 添加外部链接:使用 Neon Postgres 和 AWS App Runner 部署无服务器 FastAPI 应用,可伸缩。PR #11633 by @ananis25。
- 📝 更新
security/first-steps.md
。PR #11674 by @alejsdev。 - 📝 更新
security/first-steps.md
。PR #11673 by @alejsdev。
📝 更新 path-params-numeric-validations.md
中的注释。PR #11672 by @alejsdev。
- 📝 调整关于
Annotated
和Query()
参数的介绍性文档。PR #11664 by @tiangolo。 - 🔧 将变更日志 URL 添加到
pyproject.toml
,在 PyPI 中显示。PR #11152 by @Pierre-VF。 - 👷 不要同步标签,因为它会覆盖手动添加的标签。PR #12024 by @tiangolo。
- 👷🏻 更新 Labeler GitHub Actions。PR #12019 by @tiangolo。
- 🔧 更新 MkDocs 的语言和社交卡片配置。PR #12016 by @tiangolo。
- 👷 更新 labeler GitHub Action 的权限和配置。PR #12008 by @tiangolo。
- 👷🏻 添加 GitHub Action label-checker。PR #12005 by @tiangolo。
- 👷 添加标签检查器 GitHub Action。PR #12004 by @tiangolo。
- 👷 更新 GitHub Action add-to-project。PR #12002 by @tiangolo。
- 🔧 更新 labeler GitHub Action。PR #12001 by @tiangolo。
- 👷 添加 GitHub Action labeler。PR #12000 by @tiangolo。
- 👷 添加 GitHub Action add-to-project。PR #11999 by @tiangolo。
- 📝 更新文档中缺失的提示。PR #11998 by @tiangolo。
- 🔨 更新 docs.py 脚本,以有条件地启用脏重新加载。PR #11986 by @tiangolo。
- 🔧 更新 MkDocs 即时预览。PR #11982 by @tiangolo。
- 🐛 修复部署文档预览脚本以处理 mkdocs.yml 文件。PR #11984 by @tiangolo。
- 💡 添加关于自定义 Termynal 行高的注释。PR #11976 by @tiangolo。
- 👷 为 test-redistribute 添加 alls-green。PR #11974 by @tiangolo。
- 👷 更新文档预览以处理无文档更改的情况。PR #11975 by @tiangolo。
- 🔨 重构脚本
deploy_docs_status.py
以考虑带或不带斜杠的部署 URL。PR #11965 by @tiangolo。 - 🔒️ 更新部署文档 action 的权限。PR #11964 by @tiangolo。
- 👷🏻 将部署文档状态和预览链接添加到 PR。PR #11961 by @tiangolo。
- 🔧 使用最新配置和插件更新文档设置。PR #11953 by @tiangolo。
- 🔇 忽略 Trio 中 attrs 的警告。PR #11949 by @tiangolo。
0.112.0¶
破坏性变更¶
总结¶
安装方式:
pip install "fastapi[standard]"
其他变更¶
- 这增加了对以下方式调用 CLI 的支持:
python -m fastapi
- 并升级
fastapi-cli[standard] >=0.0.5
。
技术细节¶
在此之前,fastapi
会包含标准依赖项,如 Uvicorn 和 fastapi-cli
等。
而 fastapi-slim
则不会包含这些标准依赖项。
现在,除非您使用 pip install "fastapi[standard]"
安装,否则 fastapi
不会包含这些标准依赖项。
之前,您会安装 pip install fastapi
,现在您应该包含 standard
可选依赖项(除非您想排除其中之一):pip install "fastapi[standard]"
。
此更改是因为默认安装标准可选依赖项对一些用户来说不方便,而改为安装 fastapi-slim
也不是一个可行的解决方案。
文档¶
- ✏️ 修复文档中的拼写错误。PR #11926 by @jianghuyiyuan。
- 📝 调整管理文档。PR #11918 by @tiangolo。
- 🚚 将 GitHub 链接从 tiangolo/fastapi 重命名为 fastapi/fastapi。PR #11913 by @tiangolo。
- 📝 添加关于 FastAPI 团队和项目管理的文档。PR #11908 by @tiangolo。
- 📝 重新组织文档主菜单。PR #11904 by @tiangolo。
- 📝 更新 Speakeasy URL。PR #11871 by @ndimares。
翻译¶
- 🌐 更新
docs/docs/alternatives.md
的葡萄牙语翻译。PR #11931 by @ceb10n。 - 🌐 添加
docs/docs/tutorial/dependencies/sub-dependencies.md
的俄语翻译。PR #10515 by @AlertRED。 - 🌐 添加
docs/docs/advanced/response-change-status-code.md
的葡萄牙语翻译。PR #11863 by @ceb10n。 - 🌐 添加
docs/docs/reference/background.md
的葡萄牙语翻译。PR #11849 by @lucasbalieiro。 - 🌐 添加
docs/docs/tutorial/dependencies/dependencies-with-yield.md
的葡萄牙语翻译。PR #11848 by @Joao-Pedro-P-Holanda。 - 🌐 添加
docs/docs/reference/apirouter.md
的葡萄牙语翻译。PR #11843 by @lucasbalieiro。
内部¶
- 🔧 更新赞助商:添加 liblab。PR #11934 by @tiangolo。
- 👷 更新 GitHub Action label-approved 权限。PR #11933 by @tiangolo。
- 👷 重构 GitHub Action 以评论文档部署 URL 并更新令牌。PR #11925 by @tiangolo。
- 👷 更新 GitHub Actions 的令牌。PR #11924 by @tiangolo。
- 👷 更新令牌权限以在文档中评论部署 URL。PR #11917 by @tiangolo。
- 👷 更新 GitHub Actions 的令牌权限。PR #11915 by @tiangolo。
- 👷 更新 GitHub Actions 令牌使用。PR #11914 by @tiangolo。
- 👷 更新 GitHub Action 以使用标签
approved-1
通知翻译。PR #11907 by @tiangolo。 - 🔧 更新赞助商,移除 Reflex。PR #11875 by @tiangolo。
- 🔧 更新赞助商:移除 TalkPython。PR #11861 by @tiangolo。
- 🔨 更新文档 Termynal 脚本,使其在本地开发时不包含行号。PR #11854 by @tiangolo。
0.111.1¶
升级¶
- ➖ 从默认依赖项中移除
orjson
和ujson
。PR #11842 by @tiangolo。- 当您使用
pip install "fastapi[all]"
安装时,这些依赖项仍然会被安装。但它们不包含在pip install fastapi
中。
- 当您使用
- 📝 恢复 Swagger-UI 链接以使用最新版本。PR #11459 by @UltimateLobster。
文档¶
- ✏️ 重新措辞
docs/en/docs/fastapi-cli.md
。PR #11716 by @alejsdev。 - 📝 更新所有文档中的 Hypercorn 链接。PR #11744 by @kittydoor。
- 📝 更新文档,将 Ariadne 引用从 Starlette 改为 FastAPI。PR #11797 by @DamianCzajkowski。
- 📝 更新 FastAPI 仪表外部链接。PR #11317 by @softwarebloat。
- ✏️ 修复文档中 alembic 示例仓库的链接。PR #11628 by @augiwan。
- ✏️ 更新
docs/en/docs/fastapi-cli.md
。PR #11715 by @alejsdev。 - 📝 更新外部链接。PR #11500 by @devon2018。
- 📝 添加外部链接:Tutorial de FastAPI, ¿el mejor framework de Python?。PR #11618 by @EduardoZepeda。
- 📝 修复
docs/en/docs/tutorial/body-multiple-params.md
中的拼写错误。PR #11698 by @mwb-u。 - 📝 添加外部链接:在任何规模下使用 Neon Postgres 和 AWS App Runner 部署无服务器 FastAPI 应用程序。PR #11633 by @ananis25。
- 📝 更新
security/first-steps.md
。PR #11674 by @alejsdev。 - 📝 更新
security/first-steps.md
。PR #11673 by @alejsdev。 - 📝 更新
path-params-numeric-validations.md
中的注释。PR #11672 by @alejsdev。 - 📝 调整关于
Annotated
和Query()
参数的入门文档。PR #11664 by @tiangolo。 - 📝 更新 JWT 认证文档,使用 PyJWT 代替 python-jose。PR #11589 by @estebanx64。
- 📝 更新文档。PR #11603 by @alejsdev。
- ✏️ 修复拼写错误:将所有“re-use”转换为“reuse”。PR #11598 by @hasansezertasan。
- ✏️ 修复
fastapi/applications.py
中的拼写错误。PR #11593 by @petarmaric。 - ✏️ 修复
fastapi-cli.md
中的链接。PR #11524 by @svlandeg。
翻译¶
- 🌐 添加
docs/docs/how-to/graphql.md
的西班牙语翻译。PR #11697 by @camigomezdev。 - 🌐 添加
docs/docs/reference/index.md
的葡萄牙语翻译。PR #11840 by @lucasbalieiro。 - 🌐 修复德语翻译中的链接。PR #11836 by @anitahammer。
- 🌐 添加
docs/docs/tutorial/dependencies/sub-dependencies.md
的葡萄牙语翻译。PR #11792 by @Joao-Pedro-P-Holanda。 - 🌐 添加
docs/docs/tutorial/request-forms.md
的土耳其语翻译。PR #11553 by @hasansezertasan。 - 🌐 添加
docs/docs/reference/exceptions.md
的葡萄牙语翻译。PR #11834 by @lucasbalieiro。 - 🌐 添加
docs/docs/tutorial/dependencies/global-dependencies.md
的葡萄牙语翻译。PR #11826 by @Joao-Pedro-P-Holanda。 - 🌐 添加
docs/docs/how-to/general.md
的葡萄牙语翻译。PR #11825 by @lucasbalieiro。 - 🌐 添加
docs/docs/advanced/async-tests.md
的葡萄牙语翻译。PR #11808 by @ceb10n。 - 🌐 添加
docs/docs/tutorial/first-steps.md
的乌克兰语翻译。PR #11809 by @vkhoroshchak。 - 🌐 添加
docs/docs/tutorial/dependencies/dependencies-in-path-operation-operators.md
的葡萄牙语翻译。PR #11804 by @Joao-Pedro-P-Holanda。 - 🌐 添加
docs/docs/fastapi-cli.md
的中文翻译。PR #11786 by @logan2d5。 - 🌐 添加
docs/docs/advanced/openapi-webhooks.md
的葡萄牙语翻译。PR #11791 by @ceb10n。 - 🌐 更新
docs/tutorial/security/oauth2-jwt.md
的中文翻译。PR #11781 by @logan2d5。 - 📝 修复
docs/docs/async.md
法语翻译中图片缺失的问题。PR #11787 by @pe-brian。 - 🌐 添加
docs/docs/advanced/advanced-dependencies.md
的葡萄牙语翻译。PR #11775 by @ceb10n。 - 🌐 添加
docs/docs/tutorial/dependencies/classes-as-dependencies.md
的葡萄牙语翻译。PR #11768 by @Joao-Pedro-P-Holanda。 - 🌐 添加
docs/docs/advanced/additional-status-codes.md
的葡萄牙语翻译。PR #11753 by @ceb10n。 - 🌐 添加
docs/docs/tutorial/dependencies/index.md
的葡萄牙语翻译。PR #11757 by @Joao-Pedro-P-Holanda。 - 🌐 添加
docs/docs/advanced/settings.md
的葡萄牙语翻译。PR #11739 by @Joao-Pedro-P-Holanda。 - 🌐 添加
docs/docs/learn/index.md
的法语翻译。PR #11712 by @benjaminvandammeholberton。 - 🌐 添加
docs/docs/how-to/index.md
的葡萄牙语翻译。PR #11731 by @vhsenna。 - 🌐 添加
docs/docs/advanced/additional-responses.md
的葡萄牙语翻译。PR #11736 by @ceb10n。 - 🌐 添加
docs/docs/advanced/benchmarks.md
的葡萄牙语翻译。PR #11713 by @ceb10n。 - 🌐 修复
docs/docs/tutorial/response-status-code.md
的韩语翻译。PR #11718 by @nayeonkinn。 - 🌐 添加
docs/docs/tutorial/extra-data-types.md
的韩语翻译。PR #11711 by @nayeonkinn。 - 🌐 修复
docs/docs/tutorial/body-nested-models.md
的韩语翻译。PR #11710 by @nayeonkinn。 - 🌐 添加
docs/docs/advanced/fastapi-cli.md
的葡萄牙语翻译。PR #11641 by @ayr-ton。 - 🌐 添加
docs/docs/fastapi-people.md
的繁体中文翻译。PR #11639 by @hsuanchi。 - 🌐 添加
docs/docs/advanced/index.md
的土耳其语翻译。PR #11606 by @hasansezertasan。 - 🌐 添加
docs/docs/deployment/cloud.md
的土耳其语翻译。PR #11610 by @hasansezertasan。 - 🌐 添加
docs/docs/advanced/security/index.md
的土耳其语翻译。PR #11609 by @hasansezertasan。 - 🌐 添加
docs/docs/advanced/testing-websockets.md
的土耳其语翻译。PR #11608 by @hasansezertasan。 - 🌐 添加
docs/docs/how-to/general.md
的土耳其语翻译。PR #11607 by @hasansezertasan。 - 🌐 更新
docs/docs/advanced/templates.md
的中文翻译。PR #11620 by @chaoless。 - 🌐 添加
docs/docs/deployment/index.md
的土耳其语翻译。PR #11605 by @hasansezertasan。 - 🌐 添加
docs/docs/tutorial/static-files.md
的土耳其语翻译。PR #11599 by @hasansezertasan。 - 🌐
docs/docs/fastapi-people.md
的波兰语翻译。PR #10196 by @isulim。 - 🌐 添加
docs/docs/advanced/wsgi.md
的土耳其语翻译。PR #11575 by @hasansezertasan。 - 🌐 添加
docs/docs/tutorial/cookie-params.md
的土耳其语翻译。PR #11561 by @hasansezertasan。 - 🌐 添加
docs/docs/about/index.md
的俄语翻译。PR #10961 by @s111d。 - 🌐 更新
docs/docs/tutorial/sql-databases.md
的中文翻译。PR #11539 by @chaoless。 - 🌐 添加
docs/docs/how-to/configure-swagger-ui.md
的中文翻译。PR #11501 by @Lucas-lyh。 - 🌐 更新
/docs/advanced/security/http-basic-auth.md
的中文翻译。PR #11512 by @nick-cjyx9。
内部¶
- ♻️ 简化内部文档脚本。PR #11777 by @gitworkflows。
- 🔧 更新赞助商:添加 Fine。PR #11784 by @tiangolo。
- 🔧 调整赞助商:Kong URL。PR #11765 by @tiangolo。
- 🔧 调整赞助商:Kong URL。PR #11764 by @tiangolo。
- 🔧 更新赞助商,添加 Stainless。PR #11763 by @tiangolo。
- 🔧 更新赞助商,添加 Zuplo。PR #11729 by @tiangolo。
- 🔧 更新赞助商链接:Coherence。PR #11730 by @tiangolo。
- 👥 更新 FastAPI 人员。PR #11669 by @tiangolo。
- 🔧 添加赞助商 Kong。PR #11662 by @tiangolo。
- 👷 更新 Smokeshow,修复同步下载 artifact 和 smokeshow 配置。PR #11563 by @tiangolo。
- 👷 更新 Smokeshow 下载 artifact GitHub Action。PR #11562 by @tiangolo。
- 👷 更新 GitHub actions 以将 artifact 下载和上传到 v4,用于文档和覆盖率。PR #11550 by @tamird。
- 👷 调整用于 test-redistribute 的 CI,为 slim 添加所需的 ENV 变量。PR #11549 by @tiangolo。
- 👥 更新 FastAPI 人员。PR #11511 by @tiangolo。
0.111.0¶
特性¶
- ✨ 添加 FastAPI CLI,即新的
fastapi
命令。PR #11522 by @tiangolo。- 新文档:FastAPI CLI。
使用以下方式试用:
$ pip install --upgrade fastapi
$ fastapi dev main.py
╭────────── FastAPI CLI - Development mode ───────────╮
│ │
│ Serving at: http://127.0.0.1:8000 │
│ │
│ API docs: http://127.0.0.1:8000/docs │
│ │
│ Running in development mode, for production use: │
│ │
│ fastapi run │
│ │
╰─────────────────────────────────────────────────────╯
INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [2248755] using WatchFiles
INFO: Started server process [2248757]
INFO: Waiting for application startup.
INFO: Application startup complete.
重构¶
- 🔧 为
fastapi-slim
添加配置和设置,包括可选的附加项fastapi-slim[standard]
,以及默认包含相同standard
附加项的fastapi
。PR #11503 by @tiangolo。
0.110.3¶
文档¶
- 📝 更新 Python 版本引用,FastAPI 支持所有当前版本,无需明确指定版本。PR #11496 by @tiangolo。
- ✏️ 修复
fastapi/security/api_key.py
中的拼写错误。PR #11481 by @ch33zer。 - ✏️ 修复
security/http.py
中的拼写错误。PR #11455 by @omarmoo5。
翻译¶
- 🌐 添加
docs/benchmarks.md
的繁体中文翻译。PR #11484 by @KNChiu。 - 🌐 更新
docs/docs/fastapi-people.md
的中文翻译。PR #11476 by @billzhong。 - 🌐 添加
docs/docs/how-to/index.md
和docs/docs/how-to/general.md
的中文翻译。PR #11443 by @billzhong。 - 🌐 为 cookie-params 添加西班牙语翻译
docs/docs/tutorial/cookie-params.md
。PR #11410 by @fabianfalon。
内部¶
- ⬆ 将 mkdocstrings[python] 从 0.23.0 升级到 0.24.3。PR #11469 by @dependabot[bot]。
- 🔨 更新内部脚本并移除未使用的脚本。PR #11499 by @tiangolo。
- 🔧 内部构建从 Hatch 迁移到 PDM。PR #11498 by @tiangolo。
- ⬆️ 升级 MkDocs Material 并重新启用卡片。PR #11466 by @tiangolo。
- ⬆ 将 pillow 从 10.2.0 升级到 10.3.0。PR #11403 by @dependabot[bot]。
- 🔧 取消 dependabot 更新的分组。PR #11465 by @tiangolo。
0.110.2¶
修复¶
- 🐛 修复对列表类型查询参数的支持,处理 JSON 编码 Pydantic
UndefinedType
。PR #9929 by @arjwilliams。
重构¶
- ♻️ 简化
fastapi/openapi/models.py
中 OpenAPI 模型中的 Pydantic 配置。PR #10886 by @JoeTanto2。 - ✨ 添加对 Pydantic 2.7 新的已弃用 Field 参数的支持,从验证错误响应中移除 URL。PR #11461 by @tiangolo。
文档¶
- 📝 修复
docs_src/extra_data_types
下示例中的类型。PR #10535 by @nilslindemann。 - 📝 更新对 UJSON 的引用。PR #11464 by @tiangolo。
- 📝 调整文档和翻译链接、拼写错误、格式。PR #11389 by @nilslindemann。
- 📝 修复
docs/docs/async.md
中的拼写错误。PR #11400 by @fabianfalon。 - 📝 更新 OpenAPI 客户端生成文档以使用
@hey-api/openapi-ts
。PR #11339 by @jordanshatford。
翻译¶
- 🌐 更新
docs/docs/index.html
的中文翻译。PR #11430 by @waketzheng。 - 🌐 添加
docs/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
的俄语翻译。PR #11411 by @anton2yakovlev。 - 🌐 为
learn/index.md
、resources/index.md
、help/index.md
、about/index.md
添加葡萄牙语翻译。PR #10807 by @nazarepiedady。 - 🌐 更新部署文档的俄语翻译。PR #11271 by @Lufa1u。
- 🌐 添加
docs/docs/python-types.md
的孟加拉语翻译。PR #11376 by @imtiaz101325。 - 🌐 添加
docs/docs/tutorial/security/simple-oauth2.md
的韩语翻译。PR #5744 by @KdHyeon0661。 - 🌐 添加
docs/docs/help-fastapi.md
的韩语翻译。PR #4139 by @kty4119。 - 🌐 添加
docs/docs/advanced/events.md
的韩语翻译。PR #5087 by @pers0n4。 - 🌐 添加
docs/docs/tutorial/path-operation-configuration.md
的日语翻译。PR #1954 by @SwftAlpc。 - 🌐 添加
docs/docs/tutorial/request-forms-and-files.md
的日语翻译。PR #1946 by @SwftAlpc。 - 🌐 添加
docs/docs/tutorial/dependencies/dependencies-with-yield.md
的俄语翻译。PR #10532 by @AlertRED。 - 🌐 添加
docs/docs/tutorial/debugging.md
的韩语翻译。PR #5695 by @JungWooGeon。
内部¶
0.110.1¶
修复¶
重构¶
- ♻️ 更新 mypy。PR #11049 by @k0t3n。
- ♻️ 简化
fastapi/applications.py
中 f-string 的字符串格式。PR #11335 by @igeni。
升级¶
文档¶
- 📝 调整文档和翻译链接,并移除旧的文档翻译。PR #11381 by @tiangolo。
- ✏️ 修复
fastapi/security/oauth2.py
中的拼写错误。PR #11368 by @shandongbinzhou。 - 📝 更新 Pydantic 文档链接,指向新网站。PR #11328 by @alejsdev。
- ✏️ 修复
docs/en/docs/tutorial/extra-models.md
中的拼写错误。PR #11329 by @alejsdev。 - 📝 更新
project-generation.md
。PR #11326 by @alejsdev。 - 📝 更新外部链接。PR #11327 by @alejsdev。
- 🔥 移除指向 Pydantic 基准测试的链接,以及其他国际化页面上的链接。PR #11224 by @hirotoKirimaru。
- ✏️ 修复文档字符串中的拼写错误。PR #11295 by @davidhuser。
- 🛠️ 改进文档中的 Node.js 脚本,以生成 TypeScript 客户端。PR #11293 by @alejsdev。
- 📝 更新测试示例,将“inexistent”替换为“nonexistent”。PR #11220 by @Homesteady。
- 📝 将所有文档中
python-multipart
的 GitHub 链接从https://andrew-d.github.io/python-multipart/
更新为https://github.com/Kludex/python-multipart
。PR #11239 by @joshjhans。
翻译¶
- 🌐 添加
docs/docs/tutorial/response-status-code.md
的德语翻译。PR #10357 by @nilslindemann。 - 🌐 更新
docs/docs/tutorial/query-params.md
的中文翻译。PR #3480 by @jaystone776。 - 🌐 更新
docs/docs/tutorial/body.md
的中文翻译。PR #3481 by @jaystone776。 - 🌐 更新
docs/docs/tutorial/path-params.md
的中文翻译。PR #3479 by @jaystone776。 - 🌐 更新
docs/tutorial/body-fields.md
的中文翻译。PR #3496 by @jaystone776。 - 🌐 更新
docs/tutorial/extra-models.md
的中文翻译。PR #3497 by @jaystone776。 - 🌐 添加
docs/docs/tutorial/metadata.md
的日语翻译。PR #2667 by @tokusumi。 - 🌐 添加
docs/docs/contributing.md
的德语翻译。PR #10487 by @nilslindemann。 - 🌐 更新
docs/docs/tutorial/query-params.md
的日语翻译。PR #10808 by @urushio。 - 🌐 更新
docs/docs/tutorial/security/get-current-user.md
的中文翻译。PR #3842 by @jaystone776。 - 🌐 为
docs/docs/advanced/openapi-callbacks.md
添加中文翻译。PR #3825 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/extending-openapi.md
添加中文翻译。PR #3823 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/testing-dependencies.md
添加中文翻译。PR #3819 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/custom-request-and-route.md
添加中文翻译。PR #3816 由 @jaystone776 提交。 - 🌐 为
docs/docs/external-links.md
添加中文翻译。PR #3833 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/templates.md
添加中文翻译。PR #3812 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/sub-applications.md
添加中文翻译。PR #3811 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/async-sql-databases.md
添加中文翻译。PR #3805 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/middleware.md
添加中文翻译。PR #3804 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/dataclasses.md
添加中文翻译。PR #3803 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/using-request-directly.md
添加中文翻译。PR #3802 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/security/http-basic-auth.md
添加中文翻译。PR #3801 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/security/oauth2-scopes.md
添加中文翻译。PR #3800 由 @jaystone776 提交。 - 🌐 更新
docs/docs/tutorial/cookie-params.md
的中文翻译。PR #3486 由 @jaystone776 提交。 - 🌐 更新
docs/docs/tutorial/header-params.md
的中文翻译。PR #3487 由 @jaystone776 提交。 - 🌐 更新
docs/tutorial/response-status-code.md
的中文翻译。PR #3498 由 @jaystone776 提交。 - 🌐 为
docs/docs/tutorial/security/first-steps.md
添加德语翻译。PR #10432 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/events.md
添加德语翻译。PR #10693 由 @nilslindemann 提交。 - 🌐 为
docs/docs/deployment/cloud.md
添加德语翻译。PR #10746 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/behind-a-proxy.md
添加德语翻译。PR #10675 由 @nilslindemann 提交。 - 🌐 为
docs/docs/help-fastapi.md
添加德语翻译。PR #10455 由 @nilslindemann 提交。 - 🌐 更新
docs/docs/python-types.md
的德语翻译。PR #10287 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/path-params.md
添加德语翻译。PR #10290 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/handling-errors.md
添加德语翻译。PR #10379 由 @nilslindemann 提交。 - 🌐 更新
docs/docs/index.md
的德语翻译。PR #10283 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/security/http-basic-auth.md
添加德语翻译。PR #10651 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/bigger-applications.md
添加德语翻译。PR #10554 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/path-operation-advanced-configuration.md
添加德语翻译。PR #10612 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/static-files.md
添加德语翻译。PR #10584 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/security/oauth2-jwt.md
添加德语翻译。PR #10522 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/response-model.md
添加德语翻译。PR #10345 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/extra-models.md
添加德语翻译。PR #10351 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/body-updates.md
添加德语翻译。PR #10396 由 @nilslindemann 提交。 - 🌐 为
docs/docs/alternatives.md
添加德语翻译。PR #10855 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/templates.md
添加德语翻译。PR #10678 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/security/oauth2-scopes.md
添加德语翻译。PR #10643 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/async-tests.md
添加德语翻译。PR #10708 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/metadata.md
添加德语翻译。PR #10581 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/testing.md
添加德语翻译。PR #10586 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/schema-extra-example.md
添加德语翻译。PR #10597 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/index.md
添加德语翻译。PR #10611 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/response-directly.md
添加德语翻译。PR #10618 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/additional-responses.md
添加德语翻译。PR #10626 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/response-cookies.md
添加德语翻译。PR #10627 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/response-headers.md
添加德语翻译。PR #10628 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/response-change-status-code.md
添加德语翻译。PR #10632 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/advanced-dependencies.md
添加德语翻译。PR #10633 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/security/index.md
添加德语翻译。PR #10635 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/using-request-directly.md
添加德语翻译。PR #10653 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/dataclasses.md
添加德语翻译。PR #10667 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/middleware.md
添加德语翻译。PR #10668 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/sub-applications.md
添加德语翻译。PR #10671 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/websockets.md
添加德语翻译。PR #10687 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/testing-websockets.md
添加德语翻译。PR #10703 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/testing-events.md
添加德语翻译。PR #10704 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/testing-dependencies.md
添加德语翻译。PR #10706 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/openapi-callbacks.md
添加德语翻译。PR #10710 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/settings.md
添加德语翻译。PR #10709 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/wsgi.md
添加德语翻译。PR #10713 由 @nilslindemann 提交。 - 🌐 为
docs/docs/deployment/index.md
添加德语翻译。PR #10733 由 @nilslindemann 提交。 - 🌐 为
docs/docs/deployment/https.md
添加德语翻译。PR #10737 由 @nilslindemann 提交。 - 🌐 为
docs/docs/deployment/manually.md
添加德语翻译。PR #10738 由 @nilslindemann 提交。 - 🌐 为
docs/docs/deployment/concepts.md
添加德语翻译。PR #10744 由 @nilslindemann 提交。 - 🌐 更新
docs/docs/features.md
的德语翻译。PR #10284 由 @nilslindemann 提交。 - 🌐 为
docs/docs/deployment/server-workers.md
添加德语翻译。PR #10747 由 @nilslindemann 提交。 - 🌐 为
docs/docs/deployment/docker.md
添加德语翻译。PR #10759 由 @nilslindemann 提交。 - 🌐 为
docs/docs/how-to/index.md
添加德语翻译。PR #10769 由 @nilslindemann 提交。 - 🌐 为
docs/docs/how-to/general.md
添加德语翻译。PR #10770 由 @nilslindemann 提交。 - 🌐 为
docs/docs/how-to/graphql.md
添加德语翻译。PR #10788 由 @nilslindemann 提交。 - 🌐 为
docs/docs/how-to/custom-request-and-route.md
添加德语翻译。PR #10789 由 @nilslindemann 提交。 - 🌐 为
docs/docs/how-to/conditional-openapi.md
添加德语翻译。PR #10790 由 @nilslindemann 提交。 - 🌐 为
docs/docs/how-to/separate-openapi-schemas.md
添加德语翻译。PR #10796 由 @nilslindemann 提交。 - 🌐 为
docs/docs/how-to/configure-swagger-ui.md
添加德语翻译。PR #10804 由 @nilslindemann 提交。 - 🌐 为
docs/docs/how-to/custom-docs-ui-assets.md
添加德语翻译。PR #10803 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/parameters.md
添加德语翻译。PR #10814 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/status.md
添加德语翻译。PR #10815 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/uploadfile.md
添加德语翻译。PR #10816 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/exceptions.md
添加德语翻译。PR #10817 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/dependencies.md
添加德语翻译。PR #10818 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/apirouter.md
添加德语翻译。PR #10819 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/websockets.md
添加德语翻译。PR #10822 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/httpconnection.md
添加德语翻译。PR #10823 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/response.md
添加德语翻译。PR #10824 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/middleware.md
添加德语翻译。PR #10837 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/openapi/*.md
添加德语翻译。PR #10838 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/security/index.md
添加德语翻译。PR #10839 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/staticfiles.md
添加德语翻译。PR #10841 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/testclient.md
添加德语翻译。PR #10843 由 @nilslindemann 提交。 - 🌐 为
docs/docs/project-generation.md
添加德语翻译。PR #10851 由 @nilslindemann 提交。 - 🌐 为
docs/docs/history-design-future.md
添加德语翻译。PR #10865 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/dependencies/dependencies-with-yield.md
添加德语翻译。PR #10422 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/dependencies/global-dependencies.md
添加德语翻译。PR #10420 由 @nilslindemann 提交。 - 🌐 更新
docs/docs/fastapi-people.md
的德语翻译。PR #10285 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/dependencies/sub-dependencies.md
添加德语翻译。PR #10409 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/security/index.md
添加德语翻译。PR #10429 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
添加德语翻译。PR #10411 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/extra-data-types.md
添加德语翻译。PR #10534 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/security/simple-oauth2.md
添加德语翻译。PR #10504 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/security/get-current-user.md
添加德语翻译。PR #10439 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/request-forms-and-files.md
添加德语翻译。PR #10368 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/encoder.md
添加德语翻译。PR #10385 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/request-forms.md
添加德语翻译。PR #10361 由 @nilslindemann 提交。 - 🌐 为
docs/docs/deployment/versions.md
添加德语翻译。PR #10491 由 @nilslindemann 提交。 - 🌐 为
docs/docs/async.md
添加德语翻译。PR #10449 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/cookie-params.md
添加德语翻译。PR #10323 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/dependencies/classes-as-dependencies.md
添加德语翻译。PR #10407 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/dependencies/index.md
添加德语翻译。PR #10399 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/header-params.md
添加德语翻译。PR #10326 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/path-params-numeric-validations.md
添加德语翻译。PR #10307 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/query-params-str-validations.md
添加德语翻译。PR #10304 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/request-files.md
添加德语翻译。PR #10364 由 @nilslindemann 提交。 - :globe_with_meridians: 为
docs/docs/advanced/templates.md
添加葡萄牙语翻译。PR #11338 由 @SamuelBFavarin 提交。 - 🌐 为
docs/docs/learn/index.md
添加孟加拉语翻译。PR #11337 由 @imtiaz101325 提交。 - 🌐 修复
docs/docs/index.md
的韩语翻译。PR #11296 由 @choi-haram 提交。 - 🌐 为
docs/docs/about/index.md
添加韩语翻译。PR #11299 由 @choi-haram 提交。 - 🌐 为
docs/docs/advanced/index.md
添加韩语翻译。PR #9613 由 @ElliottLarsen 提交。 - 🌐 为
docs/docs/how-to/extending-openapi.md
添加德语翻译。PR #10794 由 @nilslindemann 提交。 - 🌐 更新
docs/docs/tutorial/metadata.md
的中文翻译。PR #11286 由 @jackleeio 提交。 - 🌐 更新
docs/docs/contributing.md
的中文翻译。PR #10887 由 @Aruelius 提交。 - 🌐 为
docs/docs/fastapi-people.md
添加阿塞拜疆语翻译。PR #11195 由 @vusallyv 提交。 - 🌐 为
docs/docs/tutorial/dependencies/index.md
添加俄语翻译。PR #11223 由 @kohiry 提交。 - 🌐 更新
docs/docs/tutorial/query-params.md
的中文翻译。PR #11242 由 @jackleeio 提交。 - 🌐 为
docs/learn/index.md
添加阿塞拜疆语翻译。PR #11192 由 @vusallyv 提交。
内部¶
- 👥 更新 FastAPI 贡献者。PR #11387 由 @tiangolo 提交。
- ⬆ 将 actions/cache 从 3 升级到 4。PR #10988 由 @dependabot[bot] 提交。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.8.11 升级到 1.8.14。PR #11318 由 @dependabot[bot] 提交。
- ⬆ 将 pillow 从 10.1.0 升级到 10.2.0。PR #11011 由 @dependabot[bot] 提交。
- ⬆ 将 black 从 23.3.0 升级到 24.3.0。PR #11325 由 @dependabot[bot] 提交。
- 👷 添加 cron 定时任务,每周一运行测试。PR #11377 由 @estebanx64 提交。
- ➕ 用 mkdocs-macros-plugin 替换 mkdocs-markdownextradata-plugin。PR #11383 由 @tiangolo 提交。
- 👷 在处理 MkDocs Material 中的问题时,禁用 MkDocs insiders social 插件。PR #11373 由 @tiangolo 提交。
- 👷 修复何时安装和使用 MkDocs Insiders 的逻辑。PR #11372 由 @tiangolo 提交。
- 👷 发布时不要使用 Python 包缓存。PR #11366 由 @tiangolo 提交。
- 👷 添加 CI 以测试 sdists 进行再分发(例如 Linux 发行版)。PR #11365 由 @tiangolo 提交。
- 👷 更新 build-docs GitHub Action 路径过滤器。PR #11354 由 @tiangolo 提交。
- 🔧 更新 Ruff 配置,添加来自 SQLModel 的额外忽略规则。PR #11353 由 @tiangolo 提交。
- ⬆️ 升级 Ruff v0.2.0 的配置。PR #11075 由 @charliermarsh 提交。
- 🔧 更新赞助商,添加 MongoDB。PR #11346 由 @tiangolo 提交。
- ⬆ 将 dorny/paths-filter 从 2 升级到 3。PR #11028 由 @dependabot[bot] 提交。
- ⬆ 将 dawidd6/action-download-artifact 从 3.0.0 升级到 3.1.4。PR #11310 由 @dependabot[bot] 提交。
- ♻️ 重构 FastAPI 贡献者计算方式,包括 3 个月、6 个月、1 年的范围,基于评论日期而非讨论日期。PR #11304 由 @tiangolo 提交。
- 👥 更新 FastAPI 贡献者。PR #11228 由 @tiangolo 提交。
- 🔥 从文档中删除 Jina AI QA Bot。PR #11268 由 @nan-wang 提交。
- 🔧 更新赞助商,移除 Jina、移除 Powens、移动 TestDriven.io。PR #11213 由 @tiangolo 提交。
0.110.0¶
重大更改¶
- 🐛 修复内部服务器错误导致未处理的内存增长问题,重构带
yield
和except
的依赖项,要求像常规 Python 中一样再次引发异常。PR #11191 由 @tiangolo 提交。- 这是一项重大更改(且仅轻微),如果你使用了带
yield
的依赖项,并在这些依赖项中使用了except
但没有再次引发异常,则会受到影响。 - 此问题由 @rushilsrivastava 内部报告为内存泄漏,当服务器出现未处理的异常导致内部服务器错误时,之前分配的内存不会被释放。
- 阅读新文档:带
yield
和except
的依赖项。
- 这是一项重大更改(且仅轻微),如果你使用了带
简而言之,如果你之前的依赖项是这样的:
def my_dep():
try:
yield
except SomeException:
pass
现在你需要确保在 except
之后再次引发异常,就像在常规 Python 中一样:
def my_dep():
try:
yield
except SomeException:
raise
文档¶
- ✏️ 修复
docs/docs/
中的少量拼写错误。PR #11126 由 @KaniKim 提交。 - ✏️ 修复
fastapi/applications.py
中的少量拼写错误。PR #11099 由 @JacobHayes 提交。
翻译¶
- 🌐 为
docs/docs/reference/background.md
添加德语翻译。PR #10820 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/templating.md
添加德语翻译。PR #10842 由 @nilslindemann 提交。 - 🌐 为
docs/docs/external-links.md
添加德语翻译。PR #10852 由 @nilslindemann 提交。 - 🌐 更新
docs/docs/tutorial/query-params.md
的土耳其语翻译。PR #11162 由 @hasansezertasan 提交。 - 🌐 为
docs/docs/reference/encoders.md
添加德语翻译。PR #10840 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/responses.md
添加德语翻译。PR #10825 由 @nilslindemann 提交。 - 🌐 为
docs/docs/reference/request.md
添加德语翻译。PR #10821 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/query-params.md
添加土耳其语翻译。PR #11078 由 @emrhnsyts 提交。 - 🌐 为
docs/docs/reference/fastapi.md
添加德语翻译。PR #10813 由 @nilslindemann 提交。 - 🌐 为
docs/docs/newsletter.md
添加德语翻译。PR #10853 由 @nilslindemann 提交。 - 🌐 为
docs/docs/learn/index.md
添加繁体中文翻译。PR #11142 由 @hsuanchi 提交。 - 🌐 为
/docs/docs/tutorial/dependencies/global-dependencies.md
添加韩语翻译。PR #11123 由 @riroan 提交。 - 🌐 为
/docs/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
添加韩语翻译。PR #11124 由 @riroan 提交。 - 🌐 为
/docs/docs/tutorial/schema-extra-example.md
添加韩语翻译。PR #11121 由 @KaniKim 提交。 - 🌐 为
/docs/docs/tutorial/body-fields.md
添加韩语翻译。PR #11112 由 @KaniKim 提交。 - 🌐 为
/docs/docs/tutorial/cookie-params.md
添加韩语翻译。PR #11118 由 @riroan 提交。 - 🌐 更新
/docs/docs/dependencies/index.md
的韩语翻译。PR #11114 由 @KaniKim 提交。 - 🌐 更新
/docs/docs/deployment/docker.md
的韩语翻译。PR #11113 由 @KaniKim 提交。 - 🌐 更新
docs/docs/tutorial/first-steps.md
的土耳其语翻译。PR #11094 由 @hasansezertasan 提交。 - 🌐 为
docs/docs/advanced/security/index.md
添加西班牙语翻译。PR #2278 由 @Xaraxx 提交。 - 🌐 为
docs/docs/advanced/response-headers.md
添加西班牙语翻译。PR #2276 由 @Xaraxx 提交。 - 🌐 为
docs/docs/deployment/index.md
和~/deployment/versions.md
添加西班牙语翻译。PR #9669 由 @pabloperezmoya 提交。 - 🌐 为
docs/docs/benchmarks.md
添加西班牙语翻译。PR #10928 由 @pablocm83 提交。 - 🌐 为
docs/docs/advanced/response-change-status-code.md
添加西班牙语翻译。PR #11100 由 @alejsdev 提交。
0.109.2¶
升级¶
翻译¶
内部¶
0.109.1¶
安全修复¶
- ⬆️ 将
python-multipart
的最低版本升级到>=0.0.7
,以修复使用表单数据进行 ReDoS 攻击时的漏洞。你也可以直接升级python-multipart
。
更多信息请阅读 安全通告:Content-Type Header ReDoS。
功能¶
重构¶
- ✅ 重构重复操作 ID 生成的测试,以兼容其他运行 FastAPI 测试套件的工具。PR #10876 由 @emmettbutler 提交。
- ♻️ 在
fastapi/utils.py
中使用 f-strings 简化字符串格式。PR #10576 由 @eukub 提交。 - 🔧 修复 Ruff 配置无意中启用和重新禁用 mccabe 复杂度检查的问题。PR #10893 由 @jiridanek 提交。
- ✅ 在 Starlette 修复后重新启用
tests/test_tutorial/test_header_params/test_tutorial003.py
中的测试。PR #10904 由 @ooknimm 提交。
文档¶
- 📝 微调
help-fastapi.md
中的措辞。PR #11040 由 @tiangolo 提交。 - 📝 微调 Behind a Proxy 的文档。PR #11038 由 @tiangolo 提交。
- 📝 添加外部链接:向 FastAPI 添加 SQLAlchemy 的 10 个技巧。PR #11036 由 @Donnype 提交。
- 📝 添加外部链接:从 Flask 迁移到 FastAPI 及反之的技巧。PR #11029 由 @jtemporal 提交。
- 📝 废弃旧教程:Peewee、Couchbase、encode/databases。PR #10979 由 @tiangolo 提交。
- ✏️ 修复
fastapi/security/oauth2.py
中的拼写错误。PR #10972 由 @RafalSkolasinski 提交。 - 📝 更新
docs/en/docs/tutorial/handling-errors.md
中HTTPException
的详细信息。PR #5418 由 @papb 提交。 - ✏️ 对
docs/docs/tutorial/first-steps.md
进行了一些调整。PR #10959 由 @nilslindemann 提交。 - ✏️ 修复
docs/en/docs/advanced/async-tests.md
中的损坏链接。PR #10960 由 @nilslindemann 提交。 - ✏️ 修复西班牙语文档的拼写错误。PR #10957 由 @jlopezlira 提交。
- 📝 添加关于 lifespan 函数和事件向后兼容性的警告。PR #10734 由 @jacob-indigo 提交。
- ✏️ 修复
docs/tutorial/sql-databases.md
在多种语言中损坏的链接。PR #10716 由 @theoohoho 提交。 - ✏️ 从
external_links.yml
中删除损坏的链接。PR #10943 由 @Torabek 提交。 - 📝 更新模板文档,提供更多关于
url_for
的信息。PR #5937 由 @EzzEddin 提交。 - 📝 更新安全文档中 Token 模型的使用。PR #9313 由 @piotrszacilowski 提交。
- ✏️ 更新
docs/en/docs/tutorial/bigger-applications.md
中的高亮行。PR #5490 由 @papb 提交。 - 📝 添加外部链接:探索如何有效地在 FastAPI 中使用 JWT。PR #10212 由 @aanchlia 提交。
- 📝 添加
docs/en/docs/tutorial/static-files.md
的超链接。PR #10243 由 @hungtsetse 提交。 - 📝 添加外部链接:使用 OpenTelemetry 仪器化 FastAPI 服务并添加跟踪,然后在 Grafana Tempo 中发送/显示跟踪。PR #9440 由 @softwarebloat 提交。
- 📝 审查和改写
en/docs/contributing.md
。PR #10480 由 @nilslindemann 提交。 - 📝 添加外部链接:使用 FastAPI 和 Evidently 进行 ML 服务和监控。PR #9701 由 @mnrozhkov 提交。
- 📝 文档中的措辞修改,将 "have in mind" 改为 "keep in mind"。PR #10376 由 @malicious 提交。
- 📝 添加外部链接:Jeny Sadadia 的演讲。PR #10265 由 @JenySadadia 提交。
- 📝 为
tutorial/bigger-applications.md
添加位置信息。PR #10552 由 @nilslindemann 提交。 - ✏️ 修复
docs/en/docs/advanced/path-operation-advanced-configuration.md
中 Pydantic 方法名称的拼写错误。PR #10826 由 @ahmedabdou14 提交。
翻译¶
- 🌐 为
docs/docs/external-links.md
添加西班牙语翻译。PR #10933 由 @pablocm83 提交。 - 🌐 更新
docs/docs/tutorial/first-steps.md
、docs/docs/tutorial/index.md
、docs/docs/tutorial/path-params.md
和docs/docs/tutorial/query-params.md
的韩语翻译。PR #4218 由 @SnowSuno 提交。 - 🌐 为
docs/docs/tutorial/dependencies/dependencies-with-yield.md
添加中文翻译。PR #10870 由 @zhiquanchi 提交。 - 🌐 为
docs/docs/deployment/concepts.md
添加中文翻译。PR #10282 由 @xzmeng 提交。 - 🌐 为
docs/docs/index.md
添加阿塞拜疆语翻译。PR #11047 由 @aykhans 提交。 - 🌐 为
docs/docs/tutorial/middleware.md
添加韩语翻译。PR #2829 由 @JeongHyeongKim 提交。 - 🌐 为
docs/docs/tutorial/body-nested-models.md
添加德语翻译。PR #10313 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/middleware.md
添加波斯语翻译。PR #9695 由 @mojtabapaso 提交。 - 🌐 更新
docs/docs/index.md
的波斯语翻译。PR #10216 由 @theonlykingpin 提交。 - 🌐 为
docs/docs/tutorial/body-fields.md
添加德语翻译。PR #10310 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/body.md
添加德语翻译。PR #10295 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/body-multiple-params.md
添加德语翻译。PR #10308 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/security/get-current-user.md
添加日语翻译。PR #2681 由 @sh0nk 提交。 - 🌐 为
docs/docs/advanced/advanced-dependencies.md
添加中文翻译。PR #3798 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/events.md
添加中文翻译。PR #3815 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/behind-a-proxy.md
添加中文翻译。PR #3820 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/testing-events.md
添加中文翻译。PR #3818 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/testing-websockets.md
添加中文翻译。PR #3817 由 @jaystone776 提交。 - 🌐 为
docs/docs/advanced/testing-database.md
添加中文翻译。PR #3821 由 @jaystone776 提交。 - 🌐 为
docs/docs/deployment/deta.md
添加中文翻译。PR #3837 由 @jaystone776 提交。 - 🌐 为
docs/docs/history-design-future.md
添加中文翻译。PR #3832 由 @jaystone776 提交。 - 🌐 为
docs/docs/project-generation.md
添加中文翻译。PR #3831 由 @jaystone776 提交。 - 🌐 为
docs/docs/deployment/docker.md
添加中文翻译。PR #10296 由 @xzmeng 提交。 - 🌐 更新
docs/docs/features.md
的西班牙语翻译。PR #10884 由 @pablocm83 提交。 - 🌐 为
docs/docs/newsletter.md
添加西班牙语翻译。PR #10922 由 @pablocm83 提交。 - 🌐 为
docs/docs/tutorial/background-tasks.md
添加韩语翻译。PR #5910 由 @junah201 提交。 - :globe_with_meridians: 为
docs/docs/alternatives.md
添加土耳其语翻译。PR #10502 由 @alperiox 提交。 - 🌐 为
docs/docs/tutorial/dependencies/index.md
添加韩语翻译。PR #10989 由 @KaniKim 提交。 - 🌐 为
/docs/docs/tutorial/body.md
添加韩语翻译。PR #11000 由 @KaniKim 提交。 - 🌐 为
docs/docs/tutorial/schema-extra-example.md
添加葡萄牙语翻译。PR #4065 由 @luccasmmg 提交。 - 🌐 为
docs/docs/history-design-future.md
添加土耳其语翻译。PR #11012 由 @hasansezertasan 提交。 - 🌐 为
docs/docs/resources/index.md
添加土耳其语翻译。PR #11020 由 @hasansezertasan 提交。 - 🌐 为
docs/docs/how-to/index.md
添加土耳其语翻译。PR #11021 由 @hasansezertasan 提交。 - 🌐 为
docs/docs/tutorial/query-params.md
添加德语翻译。PR #10293 由 @nilslindemann 提交。 - 🌐 为
docs/docs/benchmarks.md
添加德语翻译。PR #10866 由 @nilslindemann 提交。 - 🌐 为
docs/docs/learn/index.md
添加土耳其语翻译。PR #11014 由 @hasansezertasan 提交。 - 🌐 为
docs/docs/tutorial/security/index.md
添加波斯语翻译。PR #9945 由 @mojtabapaso 提交。 - 🌐 为
docs/docs/help/index.md
添加土耳其语翻译。PR #11013 由 @hasansezertasan 提交。 - 🌐 为
docs/docs/about/index.md
添加土耳其语翻译。PR #11006 由 @hasansezertasan 提交。 - 🌐 更新
docs/docs/benchmarks.md
的土耳其语翻译。PR #11005 由 @hasansezertasan 提交。 - 🌐 为
docs/docs/index.md
添加意大利语翻译。PR #5233 由 @matteospanio 提交。 - 🌐 为
docs/docs/help/index.md
添加韩语翻译。PR #10983 由 @KaniKim 提交。 - 🌐 为
docs/docs/features.md
添加韩语翻译。PR #10976 由 @KaniKim 提交。 - 🌐 为
docs/docs/tutorial/security/get-current-user.md
添加韩语翻译。PR #5737 由 @KdHyeon0661 提交。 - 🌐 为
docs/docs/tutorial/security/first-steps.md
添加俄语翻译。PR #10541 由 @AlertRED 提交。 - 🌐 为
docs/docs/tutorial/handling-errors.md
添加俄语翻译。PR #10375 由 @AlertRED 提交。 - 🌐 为
docs/docs/tutorial/encoder.md
添加俄语翻译。PR #10374 由 @AlertRED 提交。 - 🌐 为
docs/docs/tutorial/body-updates.md
添加俄语翻译。PR #10373 由 @AlertRED 提交。 - 🌐 俄语翻译:更新
fastapi-people.md
。PR #10255 由 @NiKuma0 提交。 - 🌐 为
docs/docs/tutorial/security/index.md
添加日语翻译。PR #5798 由 @3w36zj6 提交。 - 🌐 为
docs/docs/advanced/generate-clients.md
添加德语翻译。PR #10725 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/openapi-webhooks.md
添加德语翻译。PR #10712 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/custom-response.md
添加德语翻译。PR #10624 由 @nilslindemann 提交。 - 🌐 为
docs/docs/advanced/additional-status-codes.md
添加德语翻译。PR #10617 由 @nilslindemann 提交。 - 🌐 为
docs/docs/tutorial/middleware.md
添加德语翻译。PR #10391 由 @JohannesJungbluth 提交。 - 🌐 为介绍性文档添加德语翻译。PR #10497 由 @nilslindemann 提交。
- 🌐 为
docs/docs/tutorial/encoder.md
添加日语翻译。PR #1955 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/extra-data-types.md
添加日语翻译。PR #1932 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/async.md
添加土耳其语翻译。PR #5191 由 @BilalAlpaslan 提交。 - 🌐 为
docs/docs/project-generation.md
添加土耳其语翻译。PR #5192 由 @BilalAlpaslan 提交。 - 🌐 为
docs/docs/deployment/docker.md
添加韩语翻译。PR #5657 由 @nearnear 提交。 - 🌐 为
docs/docs/deployment/server-workers.md
添加韩语翻译。PR #4935 由 @jujumilk3 提交。 - 🌐 为
docs/docs/deployment/index.md
添加韩语翻译。PR #4561 由 @jujumilk3 提交。 - 🌐 为
docs/docs/tutorial/path-operation-configuration.md
添加韩语翻译。PR #3639 由 @jungsu-kwon 提交。 - 🌐 修改
zh
- 繁体中文的描述。PR #10889 由 @cherinyy 提交。 - 🌐 为
docs/docs/tutorial/static-files.md
添加韩语翻译。PR #2957 由 @jeesang7 提交。 - 🌐 为
docs/docs/tutorial/response-model.md
添加韩语翻译。PR #2766 由 @hard-coders 提交。 - 🌐 为
docs/docs/tutorial/body-multiple-params.md
添加韩语翻译。PR #2461 由 @PandaHun 提交。 - 🌐 为
docs/docs/tutorial/query-params-str-validations.md
添加韩语翻译。PR #2415 由 @hard-coders 提交。 - 🌐 为
docs/docs/python-types.md
添加韩语翻译。PR #2267 由 @jrim 提交。 - 🌐 为
docs/docs/tutorial/body-nested-models.md
添加韩语翻译。PR #2506 由 @hard-coders 提交。 - 🌐 为
docs/docs/learn/index.md
添加韩语翻译。PR #10977 由 @KaniKim 提交。 - 🌐 初始化繁体中文翻译。PR #10505 由 @hsuanchi 提交。
- ✏️ 微调
docs/docs/tutorial/index.md
的德语翻译。PR #10962 由 @nilslindemann 提交。 - ✏️ 修复
docs/docs/tutorial/path-params.md
中的拼写错误。PR #10758 由 @2chanhaeng 提交。 - 🌐 为
docs/docs/tutorial/dependencies/dependencies-with-yield.md
添加日语翻译。PR #1961 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
添加日语翻译。PR #1960 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/dependencies/sub-dependencies.md
添加日语翻译。PR #1959 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/background-tasks.md
添加日语翻译。PR #2668 由 @tokusumi 提交。 - 🌐 为
docs/docs/tutorial/dependencies/index.md
和docs/docs/tutorial/dependencies/classes-as-dependencies.md
添加日语翻译。PR #1958 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/response-model.md
添加日语翻译。PR #1938 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/body-multiple-params.md
添加日语翻译。PR #1903 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/path-params-numeric-validations.md
添加日语翻译。PR #1902 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/python-types.md
添加日语翻译。PR #1899 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/handling-errors.md
添加日语翻译。PR #1953 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/response-status-code.md
添加日语翻译。PR #1942 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/extra-models.md
添加日语翻译。PR #1941 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/schema-extra-example.md
添加日语翻译。PR #1931 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/body-nested-models.md
添加日语翻译。PR #1930 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/body-fields.md
添加日语翻译。PR #1923 由 @SwftAlpc 提交。 - 🌐 为
docs/docs/tutorial/index.md
添加德语翻译。PR #9502 由 @fhabers21 提交。 - 🌐 为
docs/docs/tutorial/background-tasks.md
添加德语翻译。PR #10566 由 @nilslindemann 提交。 - ✏️ 修复
docs/docs/index.md
中的拼写错误。PR #10672 由 @Delitel-WEB 提交。 - ✏️ 修复
docs/docs/tutorial/extra-data-types.md
中的拼写错误。PR #10727 由 @HiemalBeryl 提交。 - 🌐 为
docs/docs/tutorial/dependencies/classes-as-dependencies.md
添加俄语翻译。PR #10410 由 @AlertRED 提交。
内部¶
- 👥 更新 FastAPI 贡献者。PR #11074 由 @tiangolo 提交。
- 🔧 更新赞助商:添加 Coherence。PR #11066 由 @tiangolo 提交。
- 👷 升级 GitHub Action issue-manager。PR #11056 由 @tiangolo 提交。
- 🍱 更新赞助商:TalkPython 徽章。PR #11052 由 @tiangolo 提交。
- 🔧 更新赞助商:TalkPython 徽章图片。PR #11048 由 @tiangolo 提交。
- 🔧 更新赞助商,移除 Deta。PR #11041 由 @tiangolo 提交。
- 💄 修复 CSS 破坏 RTL 语言的问题(由之前的 RTL PR 错误引入)。PR #11039 由 @tiangolo 提交。
- 🔧 在
mkdocs.yml
中添加意大利语。PR #11016 由 @alejsdev 提交。 - 🔨 在 CI 中验证
mkdocs.yml
语言,更新docs.py
。PR #11009 由 @tiangolo 提交。 - 🔧 更新
label-approved.yml
中的配置,允许翻译有 1 个审阅者。PR #11007 由 @alejsdev 提交。 - 👷 在 GitHub Action 问题管理器中添加 changes-requested 处理。PR #10971 由 @tiangolo 提交。
- 🔧 在 dependabot 更新中对依赖项进行分组。PR #10952 由 @Kludex 提交。
- ⬆ 将 actions/setup-python 从 4 升级到 5。PR #10764 由 @dependabot[bot] 提交。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.8.10 升级到 1.8.11。PR #10731 由 @dependabot[bot] 提交。
- ⬆ 将 dawidd6/action-download-artifact 从 2.28.0 升级到 3.0.0。PR #10777 由 @dependabot[bot] 提交。
- 🔧 添加对更长代码名称(如
zh-hant
)语言翻译的支持。PR #10950 由 @tiangolo 提交。
0.109.0¶
功能¶
升级¶
文档¶
- ✏️ 修复
docs/en/docs/alternatives.md
中的拼写错误。PR #10931 由 @s111d 提交。 - 📝 在
docs_src/security/tutorial007
代码示例中,将email
替换为username
。PR #10649 由 @nilslindemann 提交。 - 📝 添加 VS Code 教程链接。PR #10592 由 @nilslindemann 提交。
- 📝 添加关于 Pydantic v2 新
.model_dump()
的说明。PR #10929 由 @tiangolo 提交。 - 📝 修复
docs/en/docs/tutorial/sql-databases.md
中的损坏链接。PR #10765 由 @HurSungYun 提交。 - 📝 添加外部链接:轻松实现 FastAPI 应用程序监控。PR #10917 由 @tiangolo 提交。
- ✨ 为文档翻译自动生成语言名称。PR #5354 由 @jakul 提交。
- ✏️ 修复
docs/en/docs/alternatives.md
和docs/en/docs/tutorial/dependencies/index.md
中的拼写错误。PR #10906 由 @s111d 提交。 - ✏️ 修复
docs/en/docs/tutorial/dependencies/dependencies-with-yield.md
中的拼写错误。PR #10834 由 @Molkree 提交。 - 📝 添加文章:《使用 FastAPI 构建 RESTful API:包含安全注册和登录功能》。PR #9733 由 @dxphilo 提交。
- 📝 添加关于
AsyncClient
生命周期事件的警告。PR #4167 由 @andrew-chang-dewitt 提交。 - ✏️ 修复
/docs/reference/exceptions.md
和/en/docs/reference/status.md
中的拼写错误。PR #10809 由 @clarencepenz 提交。 - ✏️ 修复
openapi-callbacks.md
中的拼写错误。PR #10673 由 @kayjan 提交。 - ✏️ 修复
fastapi/routing.py
中的拼写错误。PR #10520 由 @sepsh 提交。 - 📝 更新测试文档中现有用户错误时返回的 HTTP 代码。PR #4482 由 @TristanMarion 提交。
- 📝 添加 FastAPI & Supabase 博客。PR #6018 由 @theinfosecguy 提交。
- 📝 更新 SQLAlchemy 数据库文档中的示例源文件。PR #9508 由 @s-mustafa 提交。
- 📝 更新文档中关于请求体的代码示例,适当将
create_item
更名为update_item
。PR #5913 由 @OttoAndrey 提交。 - ✏️ 修复带 yield 的依赖项源示例中的拼写错误。PR #10847 由 @tiangolo 提交。
翻译¶
- 🌐 为
docs/docs/index.md
添加孟加拉语翻译。PR #9177 由 @Fahad-Md-Kamal 提交。 - ✏️ 更新多种语言的
index.md
中的 Python 版本。PR #10711 由 @tamago3keran 提交。 - 🌐 为
docs/docs/tutorial/request-forms-and-files.md
添加俄语翻译。PR #10347 由 @AlertRED 提交。 - 🌐 为
docs/docs/index.md
添加乌克兰语翻译。PR #10362 由 @rostik1410 提交。 - ✏️ 更新
docs/docs/index.md
中的 Python 版本。PR #10680 由 @Eeap 提交。 - 🌐 为
docs/docs/features.md
添加波斯语翻译。PR #5887 由 @amirilf 提交。 - 🌐 为
docs/docs/advanced/additional-responses.md
添加中文翻译。PR #10325 由 @ShuibeiC 提交。 - 🌐 修复
docs/docs/tutorial/background-tasks.md
、docs/docs/tutorial/body-nested-models.md
、docs/docs/tutorial/debugging.md
、docs/docs/tutorial/testing.md
中俄语翻译的拼写错误。PR #10311 由 @AlertRED 提交。 - 🌐 为
docs/docs/tutorial/request-files.md
添加俄语翻译。PR #10332 由 @AlertRED 提交。 - 🌐 为
docs/docs/deployment/server-workers.md
添加中文翻译。PR #10292 由 @xzmeng 提交。 - 🌐 为
docs/docs/deployment/cloud.md
添加中文翻译。PR #10291 由 @xzmeng 提交。 - 🌐 添加了
docs/docs/deployment/manually.md
的中文翻译。PR #10279 由 @xzmeng 提交。 - 🌐 添加了
docs/docs/deployment/https.md
的中文翻译。PR #10277 由 @xzmeng 提交。 - 🌐 添加了
docs/docs/deployment/index.md
的中文翻译。PR #10275 由 @xzmeng 提交。 - 🌐 添加了
docs/docs/tutorial/first-steps.md
的德语翻译。PR #9530 由 @fhabers21 提交。 - 🌐 更新了
docs/docs/index.md
的土耳其语翻译。PR #10444 由 @hasansezertasan 提交。 - 🌐 添加了
docs/docs/learn/index.md
的中文翻译。PR #10479 由 @KAZAMA-DREAM 提交。 - 🌐 添加了
docs/docs/learn/index.md
的俄语翻译。PR #10539 由 @AlertRED 提交。 - 🌐 更新了
docs/docs/tutorial/sql-databases.md
中文翻译的 SQLAlchemy 说明。PR #9712 由 @Royc30ne 提交。 - 🌐 添加了
docs/docs/external-links.md
的土耳其语翻译。PR #10549 由 @hasansezertasan 提交。 - 🌐 添加了
docs/docs/learn/index.md
的西班牙语翻译。PR #10885 由 @pablocm83 提交。 - 🌐 添加了
docs/docs/tutorial/body-fields.md
的乌克兰语翻译。PR #10670 由 @ArtemKhymenko 提交。 - 🌐 添加了
/docs/docs/index.md
的匈牙利语翻译。PR #10812 由 @takacs 提交。 - 🌐 添加了
docs/docs/newsletter.md
的土耳其语翻译。PR #10550 由 @hasansezertasan 提交。 - 🌐 添加了
docs/docs/help/index.md
的西班牙语翻译。PR #10907 由 @pablocm83 提交。 - 🌐 添加了
docs/docs/about/index.md
的西班牙语翻译。PR #10908 由 @pablocm83 提交。 - 🌐 添加了
docs/docs/resources/index.md
的西班牙语翻译。PR #10909 由 @pablocm83 提交。
内部¶
- 👥 更新 FastAPI 人员名单。PR #10871 由 @tiangolo 提交。
- 👷 升级了自定义 GitHub Action comment-docs-preview-in-pr。PR #10916 由 @tiangolo 提交。
- ⬆️ 升级了 GitHub Action latest-changes。PR #10915 由 @tiangolo 提交。
- 👷 升级了 GitHub Action label-approved。PR #10913 由 @tiangolo 提交。
- ⬆️ 升级了 GitHub Action label-approved。PR #10905 由 @tiangolo 提交。
0.108.0¶
升级¶
- ⬆️ 将 Starlette 升级到
>=0.29.0,<0.33.0
,并更新了文档以及模板对新 Starlette 参数的使用。移除了 AnyIO>=3.7.1,<4.0.0
的版本限制,增加了对 AnyIO 4.x.x 的支持。PR #10846 由 @tiangolo 提交。
0.107.0¶
升级¶
文档¶
- 📝 添加了文档:使用 Node.js 脚本更新生成客户端的 OpenAPI 的替代方案。PR #10845 由 @alejsdev 提交。
- 📝 重构了贡献页面中的文档部分。PR #10844 由 @alejsdev 提交。
0.106.0¶
破坏性变更¶
后台任务中不再支持使用带 yield
的依赖项中的资源。
此更改支持新功能,请阅读下文。🤓
带有 yield
的依赖项、HTTPException
和后台任务¶
带有 yield
的依赖项现在可以在 yield
之后引发 HTTPException
和其他异常。🎉
在此处阅读新文档:带有 yield
和 HTTPException
的依赖项。
from fastapi import Depends, FastAPI, HTTPException
from typing_extensions import Annotated
app = FastAPI()
data = {
"plumbus": {"description": "Freshly pickled plumbus", "owner": "Morty"},
"portal-gun": {"description": "Gun to create portals", "owner": "Rick"},
}
class OwnerError(Exception):
pass
def get_username():
try:
yield "Rick"
except OwnerError as e:
raise HTTPException(status_code=400, detail=f"Owner error: {e}")
@app.get("/items/{item_id}")
def get_item(item_id: str, username: Annotated[str, Depends(get_username)]):
if item_id not in data:
raise HTTPException(status_code=404, detail="Item not found")
item = data[item_id]
if item["owner"] != username:
raise OwnerError(username)
return item
在 FastAPI 0.106.0 之前,在 yield
之后引发异常是不可能的,因为带有 yield
的依赖项中的退出代码是在响应发送 之后 执行的,所以 异常处理器 已经运行。
这种设计主要是为了允许在后台任务内部使用依赖项 "yield" 的相同对象,因为退出代码会在后台任务完成后执行。
然而,这意味着在响应通过网络传输时,不必要地占用带有 yield 的依赖项中的资源(例如数据库连接),因此在 FastAPI 0.106.0 中对此进行了更改。
此外,后台任务通常是一组独立的逻辑,应该单独处理,并拥有自己的资源(例如,它自己的数据库连接)。
如果您以前依赖此行为,那么现在您应该在后台任务本身内部创建资源,并且内部只使用不依赖于带有 yield
的依赖项的资源的数据。
例如,您不会使用相同的数据库会话,而是在后台任务中创建一个新的数据库会话,并使用此新会话从数据库获取对象。然后,您将不再将数据库中的对象作为参数传递给后台任务函数,而是传递该对象的 ID,然后在后台任务函数内部再次获取该对象。
FastAPI 0.106.0 之前的执行顺序如下。
时间从上到下流逝。每列是交互或执行代码的一部分。
sequenceDiagram
participant client as Client
participant handler as Exception handler
participant dep as Dep with yield
participant operation as Path Operation
participant tasks as Background tasks
Note over client,tasks: Can raise exception for dependency, handled after response is sent
Note over client,operation: Can raise HTTPException and can change the response
client ->> dep: Start request
Note over dep: Run code up to yield
opt raise
dep -->> handler: Raise HTTPException
handler -->> client: HTTP error response
dep -->> dep: Raise other exception
end
dep ->> operation: Run dependency, e.g. DB session
opt raise
operation -->> dep: Raise HTTPException
dep -->> handler: Auto forward exception
handler -->> client: HTTP error response
operation -->> dep: Raise other exception
dep -->> handler: Auto forward exception
end
operation ->> client: Return response to client
Note over client,operation: Response is already sent, can't change it anymore
opt Tasks
operation -->> tasks: Send background tasks
end
opt Raise other exception
tasks -->> dep: Raise other exception
end
Note over dep: After yield
opt Handle other exception
dep -->> dep: Handle exception, can't change response. E.g. close DB session.
end
新的执行流程可以在文档中找到:带有 yield
的依赖项的执行。
功能¶
内部¶
0.105.0¶
功能¶
重构¶
文档¶
内部¶
- 🔧 更新了赞助商,添加了 Scalar。PR #10728 由 @tiangolo 提交。
- 🔧 更新了赞助商,添加了 PropelAuth。PR #10760 由 @tiangolo 提交。
- 👷 更新了构建文档,在 CI 上验证 README。PR #10750 由 @tiangolo 提交。
- 🔧 更新了赞助商,移除了 Fern。PR #10729 由 @tiangolo 提交。
- 🔧 更新了赞助商,添加了 Codacy。PR #10677 由 @tiangolo 提交。
- 🔧 更新了赞助商,添加了 Reflex。PR #10676 由 @tiangolo 提交。
- 📝 更新了发布说明,移动并检查了最新更改。PR #10588 由 @tiangolo 提交。
- 👷 升级了最新更改的 GitHub Action。PR #10587 由 @tiangolo 提交。
0.104.1¶
修复¶
- 📌 暂时将 Swagger UI 版本固定为 5.9.0,以解决 5.9.1 中导致其崩溃的错误。PR #10529 由 @alejandraklachquin 提交。
- 这并非 FastAPI 的 bug,而是 Swagger UI 的 bug,但固定版本可以解决问题,直到 Swagger UI 方面找到解决方案。
文档¶
- 📝 更新了外部链接的数据结构和渲染。PR #10495 由 @tiangolo 提交。
- ✏️ 修复了
docs/en/docs/tutorial/metadata.md
中 SPDX 许可证标识符的链接。PR #10433 由 @worldworm 提交。 - 📝 更新了
docs/en/docs/tutorial/path-params.md
中 Pydantic v1 的验证错误示例以匹配 Pydantic v2。PR #10043 由 @giuliowaitforitdavide 提交。 - ✏️ 修复了表情符号文档和一些源代码示例中的错别字。PR #10438 由 @afuetterer 提交。
- ✏️ 修复了
docs/en/docs/reference/dependencies.md
中的错别字。PR #10465 由 @suravshresth 提交。 - ✏️ 修复并重写了
docs/en/docs/tutorial/body-nested-models.md
中的错别字。PR #10468 由 @yogabonito 提交。 - 📝 更新了文档,删除了
docs/en/docs/tutorial/query-params-str-validations.md
中对已删除的pydantic.Required
的引用。PR #10469 由 @yogabonito 提交。 - ✏️ 修复了
docs/en/docs/reference/index.md
中的错别字。PR #10467 由 @tarsil 提交。 - 🔥 删除了不必要的重复 docstring。PR #10484 由 @tiangolo 提交。
内部¶
- ✏️ 更新了 Pydantic 链接以支持 dotenv。PR #10511 由 @White-Mask 提交。
- ✏️ 更新了
docs/en/docs/async.md
和docs/docs/async.md
中的链接,使它们成为相对链接。PR #10498 由 @hasnatsajid 提交。 - ✏️ 修复了
docs/docs/async.md
中的链接。PR #10507 由 @hasnatsajid 提交。 - ✏️ 修复了
docs/docs/index.md
中的错别字,Python 3.8。PR #10521 由 @kerriop 提交。 - ⬆ 将 pillow 从 9.5.0 升级到 10.1.0。PR #10446 由 @dependabot[bot] 提交。
- ⬆ 将 mkdocs-material 的要求从 <9.0.0,>=8.1.4 更新到 >=8.1.4,<10.0.0。PR #5862 由 @dependabot[bot] 提交。
- ⬆ 将 mkdocs-material 从 9.1.21 升级到 9.4.7。PR #10545 由 @dependabot[bot] 提交。
- 👷 仅当密钥可用时才安装 MkDocs Material Insiders,供 Dependabot 使用。PR #10544 由 @tiangolo 提交。
- 🔧 更新了赞助商徽章,Databento。PR #10519 由 @tiangolo 提交。
- 👷 采用 Ruff 格式。PR #10517 由 @tiangolo 提交。
- 🔧 添加了用于学术引用的
CITATION.cff
文件。PR #10496 由 @tiangolo 提交。 - 🐛 修复了覆盖 hook 中 MkDocs 主题语言的问题。PR #10490 由 @tiangolo 提交。
- 🔥 关闭 Gitter 聊天。问题应提交至 GitHub Discussions,自由交流请使用 Discord。PR #10485 由 @tiangolo 提交。
0.104.0¶
功能¶
- ✨ 添加了 PEP 727 的参考(代码 API)文档,为
BackgroundTasks
添加了带有自定义 docstring 的子类,并重构了文档结构。PR #10392 由 @tiangolo 提交。新文档位于 FastAPI 参考 - 代码 API。
升级¶
内部¶
- ⬆ 将 dawidd6/action-download-artifact 从 2.27.0 升级到 2.28.0。PR #10268 由 @dependabot[bot] 提交。
- ⬆ 将 actions/checkout 从 3 升级到 4。PR #10208 由 @dependabot[bot] 提交。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.8.6 升级到 1.8.10。PR #10061 由 @dependabot[bot] 提交。
- 🔧 更新了赞助商,Bump.sh 图片。PR #10381 由 @tiangolo 提交。
- 👥 更新 FastAPI 人员名单。PR #10363 由 @tiangolo 提交。
0.103.2¶
重构¶
翻译¶
- 🌐 添加了
docs/docs/tutorial/extra-data-types.md
的乌克兰语翻译。PR #10132 由 @ArtemKhymenko 提交。 - 🌐 修复了以下法语翻译中的错别字:
docs/docs/advanced/path-operation-advanced-configuration.md
、docs/docs/alternatives.md
、docs/docs/async.md
、docs/docs/features.md
、docs/docs/help-fastapi.md
、docs/docs/index.md
、docs/docs/python-types.md
、docs/docs/tutorial/body.md
、docs/docs/tutorial/first-steps.md
、docs/docs/tutorial/query-params.md
。PR #10154 由 @s-rigaud 提交。 - 🌐 添加了
docs/docs/async.md
的中文翻译。PR #5591 由 @mkdir700 提交。 - 🌐 更新了
docs/tutorial/security/simple-oauth2.md
的中文翻译。PR #3844 由 @jaystone776 提交。 - 🌐 添加了
docs/docs/deployment/cloud.md
的韩语翻译。PR #10191 由 @Sion99 提交。 - 🌐 添加了
docs/docs/deployment/https.md
的日语翻译。PR #10298 由 @tamtam-fitness 提交。 - 🌐 修复了
docs/docs/tutorial/body-fields.md
俄语翻译中的错别字。PR #10224 由 @AlertRED 提交。 - 🌐 添加了
docs/docs/help-fastapi.md
的波兰语翻译。PR #10121 由 @romabozhanovgithub 提交。 - 🌐 添加了
docs/docs/tutorial/header-params.md
的俄语翻译。PR #10226 由 @AlertRED 提交。 - 🌐 添加了
docs/docs/deployment/versions.md
的中文翻译。PR #10276 由 @xzmeng 提交。
内部¶
- 🔧 更新了赞助商,移除了 Flint。PR #10349 由 @tiangolo 提交。
- 🔧 将标签 "awaiting review" 重命名为 "awaiting-review" 以简化搜索查询。PR #10343 由 @tiangolo 提交。
- 🔧 更新了赞助商,启用了 Svix(恢复 #10228)。PR #10253 由 @tiangolo 提交。
- 🔧 更新了赞助商,移除了 Svix。PR #10228 由 @tiangolo 提交。
- 🔧 更新了赞助商,添加了 Bump.sh。PR #10227 由 @tiangolo 提交。
0.103.1¶
修复¶
文档¶
- ✏️ 修复了文档中的验证参数名称,将
regex
改为pattern
。PR #10085 由 @pablodorrio 提交。 - ✏️ 修复了
docs/en/docs/deployment/server-workers.md
中的缩进格式。PR #10066 由 @tamtam-fitness 提交。 - ✏️ 修复了 Python 类型教程中 Pydantic 示例。PR #9961 由 @rahulsalgare 提交。
- ✏️ 修复了
docs/en/docs/tutorial/extra-data-types.md
中 Pydantic 文档的链接。PR #10155 由 @hasnatsajid 提交。 - ✏️ 修复了
docs/en/docs/tutorial/handling-errors.md
中的错别字。PR #10170 由 @poupapaa 提交。 - ✏️ 修复了
docs/en/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
中的错别字。PR #10172 由 @ragul-kachiappan 提交。
翻译¶
- 🌐 删除了
docs/docs/tutorial/path-params.md
翻译中的重复行。PR #10126 由 @LecoOliveira 提交。 - 🌐 添加了
docs/docs/index.md
的约鲁巴语翻译。PR #10033 由 @AfolabiOlaoluwa 提交。 - 🌐 添加了
docs/docs/python-types.md
的乌克兰语翻译。PR #10080 由 @rostik1410 提交。 - 🌐 添加了
docs/docs/tutorial/first-steps.md
和docs/docs/tutorial/index.md
的越南语翻译。PR #10088 由 @magiskboy 提交。 - 🌐 添加了
docs/docs/alternatives.md
的乌克兰语翻译。PR #10060 由 @whysage 提交。 - 🌐 添加了
docs/docs/tutorial/index.md
的乌克兰语翻译。PR #10079 由 @rostik1410 提交。 - ✏️ 修复了
docs/en/docs/how-to/separate-openapi-schemas.md
和docs/en/docs/tutorial/schema-extra-example.md
中的错别字。PR #10189 由 @xzmeng 提交。 - 🌐 添加了
docs/docs/advanced/generate-clients.md
的中文翻译。PR #9883 由 @funny-cat-happy 提交。
重构¶
- ✏️ 修复了
fastapi/applications.py
中注释中的错别字。PR #10045 由 @AhsanSheraz 提交。 - ✅ 为 OpenAPI 示例添加了缺失的测试,它在覆盖范围中缺失。PR #10188 由 @tiangolo 提交。
内部¶
0.103.0¶
功能¶
- ✨ 添加了对所有 FastAPI 参数中
openapi_examples
的支持。PR #10152 由 @tiangolo 提交。- 新文档:OpenAPI 特定示例。
文档¶
0.102.0¶
功能¶
- ✨ 添加了对在 Pydantic v2 中使用
separate_input_output_schemas=False
禁用 OpenAPI 中输入和输出 JSON Schemas 分离的支持。PR #10145 由 @tiangolo 提交。- 新文档 分离或不分离输入和输出的 OpenAPI Schemas。
- 此 PR 还包括一个新的设置(内部工具),用于生成文档截图。
重构¶
文档¶
- 📝 添加了新的文档部分,How To - Recipes(操作指南 - 技巧),将不需要每个人阅读的文档移动到 How To。PR #10114 由 @tiangolo 提交。
- 📝 更新了高级文档,添加了赞助商课程的链接。PR #10113 由 @tiangolo 提交。
- 📝 更新了生成客户端的文档。PR #10112 由 @tiangolo 提交。
- 📝 微调了 MkDocs 并添加了重定向。PR #10111 由 @tiangolo 提交。
- 📝 重构了云提供商的文档,包含了赞助商的链接。PR #10110 由 @tiangolo 提交。
内部¶
0.101.1¶
修复¶
重构¶
- ✏️ 修复了
fastapi/params.py
中弃用警告中的错别字。PR #9854 由 @russbiggs 提交。 - ✏️ 修复了
fastapi/concurrency.py
和fastapi/routing.py
内部代码注释中的错别字。PR #9590 由 @ElliottLarsen 提交。
文档¶
- ✏️ 修复了发布说明中的错别字。PR #9835 由 @francisbergin 提交。
- 📝 添加了外部文章:使用 FaunaDB 和 FastAPI 构建 SMS 垃圾邮件分类器无服务器数据库。PR #9847 由 @adejumoridwan 提交。
- 📝 修复了
docs/en/docs/contributing.md
中的错别字。PR #9878 由 @VicenteMerino 提交。 - 📝 修复了
docs/en/docs/tutorial/bigger-applications.md
中的代码高亮问题。PR #9806 由 @theonlykingpin 提交。
翻译¶
- 🌐 添加了
docs/docs/deployment/concepts.md
的日语翻译。PR #10062 由 @tamtam-fitness 提交。 - 🌐 添加了
docs/docs/deployment/server-workers.md
的日语翻译。PR #10064 由 @tamtam-fitness 提交。 - 🌐 更新了
docs/docs/deployment/docker.md
的日语翻译。PR #10073 由 @tamtam-fitness 提交。 - 🌐 添加了
docs/docs/fastapi-people.md
的乌克兰语翻译。PR #10059 由 @rostik1410 提交。 - 🌐 添加了
docs/docs/tutorial/cookie-params.md
的乌克兰语翻译。PR #10032 由 @rostik1410 提交。 - 🌐 添加了
docs/docs/deployment/docker.md
的俄语翻译。PR #9971 由 @Xewus 提交。 - 🌐 添加了
docs/docs/python-types.md
的越南语翻译。PR #10047 由 @magiskboy 提交。 - 🌐 添加了
docs/docs/tutorial/dependencies/global-dependencies.md
的俄语翻译。PR #9970 由 @dudyaosuplayer 提交。 - 🌐 添加了
docs/docs/benchmarks.md
的乌尔都语翻译。PR #9974 由 @AhsanSheraz 提交。
内部¶
- 🔧 添加了赞助商 Porter。PR #10051 由 @tiangolo 提交。
- 🔧 更新了赞助商,将 Jina 重新添加为铜牌赞助商。PR #10050 由 @tiangolo 提交。
- ⬆ 将 mypy 从 1.4.0 升级到 1.4.1。PR #9756 由 @dependabot[bot] 提交。
- ⬆ 将 mkdocs-material 从 9.1.17 升级到 9.1.21。PR #9960 由 @dependabot[bot] 提交。
0.101.0¶
功能¶
- ✨ 启用了 Pydantic 的响应序列化模式,添加了对 Pydantic 的
computed_field
的支持,改进了响应模型的 OpenAPI,正确的必需属性,更好的生成客户端。PR #10011 由 @tiangolo 提交。
重构¶
- ✅ 修复了与 pydantic 2.1.1 兼容性的测试。PR #9943 由 @dmontagu 提交。
- ✅ 修复了 Windows 上
jsonable_encoder
的测试错误。PR #9840 由 @iudeen 提交。
升级¶
翻译¶
- 🌐 添加了
docs/docs/tutorial/security/index.md
的俄语翻译。PR #9963 由 @eVery1337 提交。 - 🌐 删除了越南语关于缺少翻译的注释。PR #9957 由 @tiangolo 提交。
内部¶
- 👷 添加了 GitHub Actions 步骤 dump context 以调试外部故障。PR #10008 由 @tiangolo 提交。
- 🔧 修复后恢复了 MkDocs Material 固定版本。PR #10001 由 @tiangolo 提交。
- 🔧 更新了问题模板,要求提供 Pydantic 版本。PR #10000 由 @tiangolo 提交。
- 📍 更新了 MkDocs Material 依赖项。PR #9986 由 @tiangolo 提交。
- 👥 更新 FastAPI 人员名单。PR #9999 由 @tiangolo 提交。
- 🐳 更新了 Dockerfile 中的兼容版本,以便后续升级。PR #9998 由 @tiangolo 提交。
- ➕ 添加了 pydantic-settings 到 FastAPI 人员名单依赖项。PR #9988 由 @tiangolo 提交。
- ♻️ 使用新的 Pydantic 更新了 FastAPI 人员名单逻辑。PR #9985 由 @tiangolo 提交。
- 🍱 更新了赞助商,Fern 徽章。PR #9982 由 @tiangolo 提交。
- 👷 将文档部署到 Cloudflare Pages。PR #9978 由 @tiangolo 提交。
- 🔧 更新了赞助商 Fern。PR #9979 由 @tiangolo 提交。
- 👷 使用 Tmate 更新了 CI 调试模式。PR #9977 由 @tiangolo 提交。
0.100.1¶
修复¶
文档¶
翻译¶
- 🌐 添加了
docs/docs/tutorial/body.md
的乌克兰语翻译。PR #4574 由 @ss-o-furda 提交。 - 🌐 添加了
docs/docs/features.md
和docs/docs/index.md
的越南语翻译。PR #3006 由 @magiskboy 提交。 - 🌐 添加了
docs/docs/async.md
的韩语翻译。PR #4179 由 @NinaHwang 提交。 - 🌐 添加了
docs/docs/tutorial/background-tasks.md
的中文翻译。PR #9812 由 @wdh99 提交。 - 🌐 添加了
docs/docs/tutorial/query-params-str-validations.md
的法语翻译。PR #4075 由 @Smlep 提交。 - 🌐 添加了
docs/docs/tutorial/index.md
的法语翻译。PR #2234 由 @JulianMaurin 提交。 - 🌐 添加了
docs/docs/contributing.md
的法语翻译。PR #2132 由 @JulianMaurin 提交。 - 🌐 添加了
docs/docs/benchmarks.md
的法语翻译。PR #2155 由 @clemsau 提交。 - 🌐 更新了中文翻译以适应新的源文件。PR #9738 由 @mahone3297 提交。
- 🌐 添加了
docs/docs/tutorial/request-forms.md
的俄语翻译。PR #9841 由 @dedkot01 提交。 - 🌐 更新了
docs/docs/tutorial/handling-errors.md
的中文翻译。PR #9485 由 @Creat55 提交。
内部¶
- 🔧 更新了赞助商,添加了 Fern。PR #9956 由 @tiangolo 提交。
- 👷 更新了 FastAPI 人员名单令牌。PR #9844 由 @tiangolo 提交。
- 👥 更新 FastAPI 人员名单。PR #9775 由 @tiangolo 提交。
- 👷 更新了 MkDocs Material 令牌。PR #9843 由 @tiangolo 提交。
- 👷 更新了最新更改的令牌。PR #9842 由 @tiangolo 提交。
0.100.0¶
✨ 支持 Pydantic v2 ✨
Pydantic v2 的核心已用 Rust 重写,并包含了许多改进和功能,例如:
- 改进了边缘情况下的正确性。
- 更安全的类型。
- 更好的性能和更少的能耗。
- 更好的可扩展性。
- 等等。
...所有这一切都保持了相同的 Python API。在大多数情况下,对于简单的模型,你只需升级 Pydantic 版本即可获得所有好处。🚀
在某些情况下,对于纯粹的数据验证和处理,性能提升可达20倍或更多。这意味着性能提升2000%或更多。🤯
当你使用 FastAPI 时,还有更多的事情在发生:处理请求和响应、处理依赖项、执行你自己的代码,尤其是等待网络。但你可能仍然会从这次升级中获得一些不错的性能提升。
本次发布的重点是与 Pydantic v1 和 v2 的兼容性,以确保您当前的应用程序能够继续运行。后续将更侧重于重构、正确性、代码改进,然后是性能改进。一些在 FastAPI 测试版发布时运行基准测试的第三方早期测试者报告了 2倍 - 3倍 的性能提升。这对于仅仅执行 pip install --upgrade fastapi pydantic
来说还不错。这不是官方基准测试,我也没有亲自验证,但这是一个好迹象。
迁移¶
查看 Pydantic 迁移指南。
对于您的 Pydantic 模型中需要更改的地方,Pydantic 团队开发了 bump-pydantic
。
这是一个命令行工具,它将处理你的代码并为你自动更新大部分内容。请确保你的代码已先提交到 Git,并在提交更改前检查所有更改以确保其正确无误。
Pydantic v1¶
此版本的 FastAPI 仍支持 Pydantic v1。尽管 Pydantic v1 可能会在某个时候被弃用,但它仍将得到一段时间的支持。
这意味着您可以安装新的 Pydantic v2,如果出现问题,您可以在解决任何可能遇到的问题时安装 Pydantic v1,但仍然使用最新的 FastAPI。
同时为 Pydantic v1 和 v2 提供了测试,并且测试覆盖率保持在 100%。
变更¶
-
Pydantic
Field()
支持新的参数字段,适用于:Path()
Query()
Header()
Cookie()
Body()
Form()
File()
-
新的参数字段是:
default_factory
alias_priority
validation_alias
serialization_alias
discriminator
strict
multiple_of
allow_inf_nan
max_digits
decimal_places
json_schema_extra
...您可以在 Pydantic 文档中阅读它们。
- 参数
regex
已被弃用并替换为pattern
。- 您可以在 查询参数和字符串验证:添加正则表达式 的文档中阅读更多内容。
- 新的 Pydantic 模型使用改进和简化的
model_config
属性,它接受一个简单的字典而不是内部类Config
来进行配置。- 您可以在 声明请求示例数据 的文档中阅读更多内容。
- 内部类
Config
的schema_extra
属性已由新model_config
字典中的json_schema_extra
键替换。- 您可以在 声明请求示例数据 的文档中阅读更多内容。
- 当您安装
"fastapi[all]"
时,现在还包括:pydantic-settings
- 用于设置管理。pydantic-extra-types
- 用于 Pydantic 的额外类型。
-
现在 Pydantic Settings 是一个额外的可选包(包含在
"fastapi[all]"
中)。要使用设置,你现在应该从pydantic_settings
导入BaseSettings
,而不是直接从pydantic
导入。- 您可以在 设置和环境变量 的文档中阅读更多内容。
-
PR #9816 由 @tiangolo 提交,包含了在测试分支 (
main-pv2
) 上完成的所有工作 (在多个 PR 中)。
0.99.1¶
修复¶
文档¶
0.99.0¶
功能¶
-
✨ 添加了对 OpenAPI 3.1.0 的支持。PR #9770 由 @tiangolo 提交。
- 新增了对文档化webhooks的支持,在此处阅读新文档:高级用户指南:OpenAPI Webhooks。
- 升级 OpenAPI 3.1.0,这使用了 JSON Schema 2020-12。
- 将 Swagger UI 升级到 5.x.x 版本,该版本支持 OpenAPI 3.1.0。
- 根据最新的 JSON Schema 和 OpenAPI,更新了
Query()
、Cookie()
、Body()
等中的examples
字段。现在它接受一个示例列表,并直接包含在 JSON Schema 中,而不是外部。在此处阅读更多内容(包括历史技术细节):教程:声明请求示例数据。
-
✨ 添加了对
jsonable_encoder
中deque
对象及其子级的支持。PR #9433 由 @cranium 提交。
文档¶
翻译¶
- 🌐 添加了
docs/docs/advanced/sub-applications.md
的波斯语翻译。PR #9692 由 @mojtabapaso 提交。 - 🌐 添加了
docs/docs/tutorial/response-model.md
的俄语翻译。PR #9675 由 @glsglsgls 提交。
内部¶
- 🔨 在本地实时开发期间启用了 MkDocs Material 中的行号,以简化代码高亮。PR #9769 由 @tiangolo 提交。
- ⬆ 将 httpx 的要求从 <0.24.0,>=0.23.0 更新到 >=0.23.0,<0.25.0。PR #9724 由 @dependabot[bot] 提交。
- ⬆ 将 mkdocs-material 从 9.1.16 升级到 9.1.17。PR #9746 由 @dependabot[bot] 提交。
- 🔥 删除了缺失翻译的虚拟页面,不再需要。PR #9751 由 @tiangolo 提交。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #9259 由 @pre-commit-ci[bot] 提交。
- ✨ 添加了 Material for MkDocs Insiders 功能和卡片。PR #9748 由 @tiangolo 提交。
- 🔥 删除了没有翻译的语言。PR #9743 由 @tiangolo 提交。
- ✨ 重构了构建脚本的文档,使用了 MkDocs 钩子,简化(删除了)语言配置。PR #9742 由 @tiangolo 提交。
- 🔨 添加了 MkDocs 钩子,根据第一个索引文件重命名 sections。PR #9737 由 @tiangolo 提交。
- 👷 使 cron 任务只在主仓库运行,不在 fork 仓库运行,以避免缺少令牌的错误通知。PR #9735 由 @tiangolo 提交。
- 🔧 更新了其他语言的 MkDocs。PR #9734 由 @tiangolo 提交。
- 👷 重构了文档 CI,在多个 worker 中运行,并使用动态矩阵以优化速度。PR #9732 由 @tiangolo 提交。
- 🔥 删除了旧的内部 GitHub Action watch-previews,不再需要。PR #9730 由 @tiangolo 提交。
- ⬆️ 升级了 MkDocs 和 MkDocs Material。PR #9729 由 @tiangolo 提交。
- 👷 仅在文档更改时构建和部署文档。PR #9728 由 @tiangolo 提交。
0.98.0¶
功能¶
文档¶
- 📝 更新了关于 Pydantic 内部使用 ujson 的文档。PR #5804 由 @mvasilkov 提交。
- ✏ 重写了
docs/en/docs/tutorial/debugging.md
中的措辞。PR #9581 由 @ivan-abc 提交。 - 📝 添加了德语博客文章(Domain-driven Design mit Python und FastAPI)。PR #9261 由 @msander 提交。
- ✏️ 微调了
docs/en/docs/tutorial/security/index.md
中的措辞。PR #9561 由 @jyothish-mohan 提交。 - 📝 更新了
docs/en/docs/tutorial/schema-extra-example.md
中Annotated
的注释。PR #9620 由 @Alexandrhub 提交。 - ✏️ 修复了
docs/en/docs/tutorial/query-params-str-validations.md
中的错别字Annotation
->Annotated
。PR #9625 由 @mccricardo 提交。 - 📝 在文档中使用了内存数据库进行 SQL 测试。PR #1223 由 @HarshaLaxman 提交。
翻译¶
- 🌐 添加了
docs/docs/tutorial/metadata.md
的俄语翻译。PR #9681 由 @TabarakoAkula 提交。 - 🌐 修复了
docs/docs/tutorial/first-steps.md
西班牙语翻译中的错别字。PR #9571 由 @lilidl-nft 提交。 - 🌐 添加了
docs/tutorial/path-operation-configuration.md
的俄语翻译。PR #9696 由 @TabarakoAkula 提交。 - 🌐 添加了
docs/docs/advanced/security/index.md
的中文翻译。PR #9666 由 @lordqyxz 提交。 - 🌐 添加了
docs/docs/advanced/settings.md
的中文翻译。PR #9652 由 @ChoyeonChern 提交。 - 🌐 添加了
docs/docs/advanced/websockets.md
的中文翻译。PR #9651 由 @ChoyeonChern 提交。 - 🌐 添加了
docs/docs/tutorial/testing.md
的中文翻译。PR #9641 由 @wdh99 提交。 - 🌐 添加了
docs/tutorial/extra-models.md
的俄语翻译。PR #9619 由 @ivan-abc 提交。 - 🌐 添加了
docs/tutorial/cors.md
的俄语翻译。PR #9608 由 @ivan-abc 提交。 - 🌐 添加了
docs/docs/features.md
的波兰语翻译。PR #5348 由 @mbroton 提交。 - 🌐 添加了
docs/docs/tutorial/body-nested-models.md
的俄语翻译。PR #9605 由 @Alexandrhub 提交。
内部¶
- ⬆ 将 ruff 从 0.0.272 升级到 0.0.275。PR #9721 由 @dependabot[bot] 提交。
- ⬆ 将 uvicorn[standard] 的要求从 <0.21.0,>=0.12.0 更新到 >=0.12.0,<0.23.0。PR #9463 由 @dependabot[bot] 提交。
- ⬆ 将 mypy 从 1.3.0 升级到 1.4.0。PR #9719 由 @dependabot[bot] 提交。
- ⬆ 将 pre-commit 的要求从 <3.0.0,>=2.17.0 更新到 >=2.17.0,<4.0.0。PR #9251 由 @dependabot[bot] 提交。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.8.5 升级到 1.8.6。PR #9482 由 @dependabot[bot] 提交。
- ✏️ 修复了文档中亮/暗主题切换器的工具提示。PR #9588 由 @pankaj1707k 提交。
- 🔧 设置了构建包所需的 hatchling 最低版本。PR #9240 由 @mgorny 提交。
- 📝 添加了 PyPI 的仓库链接。PR #9559 由 @JacobCoffee 提交。
- ✏️ 修复了测试数据中的错别字。PR #4958 由 @ryanrussell 提交。
- 🔧 更新了赞助商,添加了 Flint。PR #9699 由 @tiangolo 提交。
- 👷 CI 中仅执行一次 lint,仅使用一个 Python 版本,所有版本都运行测试。PR #9686 由 @tiangolo 提交。
0.97.0¶
功能¶
- ✨ 添加了对 WebSocket 路由中
dependencies
的支持。PR #4534 由 @paulo-raca 提交。 - ✨ 添加了
WebSocketRequestValidationError
的异常处理器(也允许覆盖它)。PR #6030 由 @kristjanvalur 提交。
重构¶
- ⬆️ 升级并完全迁移到 Ruff,移除了 isort,包含新版 Ruff 建议的一些调整。PR #9660 由 @tiangolo 提交。
- ♻️ 更新了内部类型注解并升级了 mypy。PR #9658 由 @tiangolo 提交。
- ♻️ 简化了
AsyncExitStackMiddleware
,因为在 Python 3.6 之后AsyncExitStack
总是可用。PR #9657 由 @tiangolo 提交。
升级¶
内部¶
- 💚 更新了 CI 缓存,以修复依赖项更改时的安装问题。PR #9659 由 @tiangolo 提交。
- ⬇️ 将开发所需的依赖项分离到各自的 requirements.txt 文件中,它们不应该是 extras。PR #9655 由 @tiangolo 提交。
0.96.1¶
修复¶
- 🐛 修复了
HTTPException
头部类型注解。PR #9648 由 @tiangolo 提交。 - 🐛 修复了 OpenAPI 模型字段的整数验证,将
gte
改为ge
。PR #9635 由 @tiangolo 提交。
升级¶
重构¶
- ♻ 移除了
ORJSONResponse
中的media_type
,因为它继承自父类。PR #5805 由 @Kludex 提交。 - ♻ 仅在需要时实例化
HTTPException
,进行优化重构。PR #5356 由 @pawamoy 提交。
文档¶
翻译¶
- 🌐 修复了
docs/docs/tutorial/index.md
印度尼西亚语翻译中的拼写错误。PR #5635 由 @purwowd 提交。 - 🌐 添加了
docs/docs/tutorial/index.md
的俄语翻译。PR #5896 由 @Wilidon 提交。 - 🌐 添加了
docs/docs/advanced/response-change-status-code.md
和docs/docs/advanced/response-headers.md
的中文翻译。PR #9544 由 @ChoyeonChern 提交。 - 🌐 添加了
docs/docs/tutorial/schema-extra-example.md
的俄语翻译。PR #9621 由 @Alexandrhub 提交。
内部¶
- 🔧 添加了赞助商 Platform.sh。PR #9650 由 @tiangolo 提交。
- 👷 为 Smokeshow 和 Preview Docs 添加了自定义令牌,用于下载工件,以防止 API 速率限制。PR #9646 由 @tiangolo 提交。
- 👷 为 GitHub Actions 添加了自定义令牌,以避免速率限制。PR #9647 由 @tiangolo 提交。
0.96.0¶
功能¶
文档¶
- 📝 更新了 Deta 部署教程,以兼容 Deta Space。PR #6004 由 @mikBighne98 提交。
- ✏️ 修复了 Deta 部署教程中的错别字。PR #9501 由 @lemonyte 提交。
翻译¶
- 🌐 添加了
docs/tutorial/body.md
的俄语翻译。PR #3885 由 @solomein-sv 提交。 - 🌐 添加了
docs/docs/tutorial/static-files.md
的俄语翻译。PR #9580 由 @Alexandrhub 提交。 - 🌐 添加了
docs/docs/tutorial/query-params.md
的俄语翻译。PR #9584 由 @Alexandrhub 提交。 - 🌐 添加了
docs/docs/tutorial/first-steps.md
的俄语翻译。PR #9471 由 @AGolicyn 提交。 - 🌐 添加了
docs/docs/tutorial/debugging.md
的俄语翻译。PR #9579 由 @Alexandrhub 提交。 - 🌐 添加了
docs/docs/tutorial/path-params.md
的俄语翻译。PR #9519 由 @AGolicyn 提交。 - 🌐 添加了
docs/docs/tutorial/static-files.md
的中文翻译。PR #9436 由 @wdh99 提交。 - 🌐 更新了西班牙语翻译,包括
docs/docs/async.md
中的新插图。PR #9483 由 @andresbermeoq 提交。 - 🌐 添加了
docs/docs/tutorial/path-params-numeric-validations.md
的俄语翻译。PR #9563 由 @ivan-abc 提交。 - 🌐 添加了
docs/docs/deployment/concepts.md
的俄语翻译。PR #9577 由 @Xewus 提交。 - 🌐 添加了
docs/docs/tutorial/body-multiple-params.md
的俄语翻译。PR #9586 由 @Alexandrhub 提交。
内部¶
- 👥 更新 FastAPI 人员名单。PR #9602 由 @github-actions[bot] 提交。
- 🔧 更新了赞助商,移除了 InvestSuite。PR #9612 由 @tiangolo 提交。
0.95.2¶
- ⬆️ 将 Starlette 版本升级到
>=0.27.0
,以进行安全发布。PR #9541 由 @tiangolo 提交。详细信息请参阅 Starlette 的安全公告。
翻译¶
- 🌐 添加了
docs/docs/advanced/events.md
的葡萄牙语翻译。PR #9326 由 @oandersonmagalhaes 提交。 - 🌐 添加了
docs/docs/deployment/manually.md
的俄语翻译。PR #9417 由 @Xewus 提交。 - 🌐 为老挝语翻译设置了环境。PR #9396 由 @TheBrown 提交。
- 🌐 添加了
docs/docs/tutorial/testing.md
的俄语翻译。PR #9403 由 @Xewus 提交。 - 🌐 添加了
docs/docs/deployment/https.md
的俄语翻译。PR #9428 由 @Xewus 提交。 - ✏ 修复了 Windows 中安装依赖的命令。PR #9445 由 @MariiaRomanuik 提交。
- 🌐 添加了
docs/docs/advanced/response-directly.md
的法语翻译。PR #9415 由 @axel584 提交。 - 🌐 初始化了捷克语翻译设置。PR #9288 由 @3p1463k 提交。
- ✏ 修复了
docs/docs/index.md
葡萄牙语文档中的错别字。PR #9337 由 @lucasbalieiro 提交。 - 🌐 添加了
docs/docs/tutorial/response-status-code.md
的俄语翻译。PR #9370 由 @nadia3373 提交。
内部¶
- 🐛 修复了内部测试中
flask.escape
的警告。PR #9468 由 @samuelcolvin 提交。 - ✅ 重构了 2 个测试,以提高一致性和简化性。PR #9504 由 @tiangolo 提交。
- ✅ 重构了 OpenAPI 测试,为 Pydantic v2 做准备。PR #9503 由 @tiangolo 提交。
- ⬆ 将 dawidd6/action-download-artifact 从 2.26.0 升级到 2.27.0。PR #9394 由 @dependabot[bot] 提交。
- 💚 在 CI 中禁用 setup-python pip 缓存。PR #9438 由 @tiangolo 提交。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.6.4 升级到 1.8.5。PR #9346 由 @dependabot[bot] 提交。
0.95.1¶
修复¶
- 🐛 修复了在路由或路径操作中多次装饰
Annotated
时的问题。PR #9315 由 @sharonyogev 提交。
文档¶
- 🌐 🔠 📄 🐢 将文档翻译成表情符号 🥳 🎉 💥 🤯 🤯。PR #5385 由 @LeeeeT 提交。
- 📝 添加了关于旧版本 FastAPI 不支持
Annotated
的通知消息。PR #9298 由 @grdworkin 提交。 - 📝 修复了
docs/en/docs/advanced/behind-a-proxy.md
中的错别字。PR #5681 由 @Leommjr 提交。 - ✏ 修复了
docs/docs/index.md
波斯语翻译中 typing 模块的错误导入。PR #6083 由 @Kimiaattaei 提交。 - ✏️ 修复了格式,删除了
docs/en/docs/help-fastapi.md
中不必要的星号。PR #9249 由 @armgabrielyan 提交。 - ✏ 修复了
docs/en/docs/tutorial/query-params-str-validations.md
中的错别字。PR #9272 由 @nicornk 提交。 - ✏ 修复了
docs/en/docs/tutorial/query-params-str-validations.md
中内联代码示例的错别字/bug。PR #9273 由 @tim-habitat 提交。 - ✏ 修复了
docs/en/docs/tutorial/path-params-numeric-validations.md
中的错别字。PR #9282 由 @aadarsh977 提交。 - ✏ 修复了错别字:将
docs/en/docs/tutorial/query-params-str-validations.md
中的 'wll' 改为 'will'。PR #9380 由 @dasstyxx 提交。
翻译¶
- 🌐 添加了
docs/docs/advanced/index.md
的法语翻译。PR #5673 由 @axel584 提交。 - 🌐 添加了
docs/docs/tutorial/body-nested-models.md
的葡萄牙语翻译。PR #4053 由 @luccasmmg 提交。 - 🌐 添加了
docs/docs/alternatives.md
的俄语翻译。PR #5994 由 @Xewus 提交。 - 🌐 添加了
docs/docs/tutorial/extra-models.md
的葡萄牙语翻译。PR #5912 由 @LorhanSohaky 提交。 - 🌐 添加了
docs/docs/tutorial/path-operation-configuration.md
的葡萄牙语翻译。PR #5936 由 @LorhanSohaky 提交。 - 🌐 添加了
docs/docs/contributing.md
的俄语翻译。PR #6002 由 @stigsanek 提交。 - 🌐 添加了
docs/tutorial/dependencies/classes-as-dependencies.md
的韩语翻译。PR #9176 由 @sehwan505 提交。 - 🌐 添加了
docs/docs/project-generation.md
的俄语翻译。PR #9243 由 @Xewus 提交。 - 🌐 添加了
docs/docs/index.md
的法语翻译。PR #9265 由 @frabc 提交。 - 🌐 添加了
docs/docs/tutorial/query-params-str-validations.md
的俄语翻译。PR #9267 由 @dedkot01 提交。 - 🌐 添加了
docs/docs/benchmarks.md
的俄语翻译。PR #9271 由 @Xewus 提交。
内部¶
- 🔧 更新了赞助商:移除了 Jina。PR #9388 由 @tiangolo 提交。
- 🔧 更新了赞助商,添加了 databento,移除了 Ines 的课程和 StriveWorks。PR #9351 由 @tiangolo 提交。
0.95.0¶
亮点¶
此版本增加了对使用 Annotated
的依赖项和参数的支持,并推荐使用它。✨
这有几个好处,其中一个主要好处是,现在您函数中使用 Annotated
的参数将完全不受影响。
如果您在代码中的其他地方调用这些函数,实际的默认值将保留,您的编辑器将帮助您注意到缺失的必需参数,Python 将要求您在运行时传递必需参数,您将能够将相同的函数用于不同的用途和不同的库(例如,Typer很快也将支持 Annotated
,然后您可以将相同的函数用于 API 和 CLI),等等。
因为 Annotated
是标准 Python,您仍然可以获得编辑器和工具的所有好处,例如自动补全、行内错误等。
其中一个最大好处是,现在您可以创建 Annotated
依赖项,然后由多个路径操作函数共享,这将使您能够大大减少代码库中的代码重复,同时保留编辑器和工具的所有支持。
例如,您可能有这样的代码
def get_current_user(token: str):
# authenticate user
return User()
@app.get("/items/")
def read_items(user: User = Depends(get_current_user)):
...
@app.post("/items/")
def create_item(*, user: User = Depends(get_current_user), item: Item):
...
@app.get("/items/{item_id}")
def read_item(*, user: User = Depends(get_current_user), item_id: int):
...
@app.delete("/items/{item_id}")
def delete_item(*, user: User = Depends(get_current_user), item_id: int):
...
依赖项的代码有一些重复
user: User = Depends(get_current_user)
......代码库越大,这一点就越明显。
现在您可以像这样一次性创建一个带有注解的依赖项
CurrentUser = Annotated[User, Depends(get_current_user)]
然后您可以重复使用这个 Annotated
依赖项
CurrentUser = Annotated[User, Depends(get_current_user)]
@app.get("/items/")
def read_items(user: CurrentUser):
...
@app.post("/items/")
def create_item(user: CurrentUser, item: Item):
...
@app.get("/items/{item_id}")
def read_item(user: CurrentUser, item_id: int):
...
@app.delete("/items/{item_id}")
def delete_item(user: CurrentUser, item_id: int):
...
......而且 CurrentUser
拥有与 User
相同的所有类型信息,因此您的编辑器将按预期工作(自动补全等等),并且 FastAPI 将能够理解 Annotated
中定义的依赖项。😎
大约所有文档都已重写,以使用 Annotated
作为声明参数和依赖项的主要方式。文档中的所有示例现在都包含一个带有 Annotated
的版本和一个没有它的版本,适用于每个特定的 Python 版本(当最新版本有细微差异/改进时)。文档、示例和测试之间增加了大约 23K 行新代码。🚀
更新的关键文档是
- Python 类型简介
- 教程
特别感谢 @nzig 的核心实现,以及 @adriangb 通过 Xpresso 提供的灵感和想法!🚀
特性¶
文档¶
- 📝 调整文档中推荐
Annotated
的提示。PR #9270 by @tiangolo。 - 📝 更新示例顺序,最新 Python 版本优先,并简化版本标签名称。PR #9269 by @tiangolo。
- 📝 更新所有文档以使用
Annotated
作为主要推荐,并包含新示例和测试。PR #9268 by @tiangolo。
0.94.1¶
修复¶
0.94.0¶
升级¶
- ⬆ 升级 python-multipart 以支持 0.0.6。PR #9212 by @musicinmybrain。
- ⬆️ 升级 Starlette 版本,支持带状态的新
lifespan
。PR #9239 by @tiangolo。
文档¶
翻译¶
内部¶
- ➕ 添加
pydantic
到 PyPI 分类器。PR #5914 by @yezz123。 - ⬆ 将 black 从 22.10.0 升级到 23.1.0。PR #5953 by @dependabot[bot]。
- ⬆ 将 types-ujson 从 5.6.0.0 升级到 5.7.0.1。PR #6027 by @dependabot[bot]。
- ⬆ 将 dawidd6/action-download-artifact 从 2.24.3 升级到 2.26.0。PR #6034 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #5709 by @pre-commit-ci[bot]。
0.93.0¶
特性¶
现在,您可以不再使用独立的 startup
和 shutdown
事件,而是可以在一个带有 yield
并用 @asynccontextmanager
装饰的函数中定义该逻辑(一个异步上下文管理器)。
例如:
from contextlib import asynccontextmanager
from fastapi import FastAPI
def fake_answer_to_everything_ml_model(x: float):
return x * 42
ml_models = {}
@asynccontextmanager
async def lifespan(app: FastAPI):
# Load the ML model
ml_models["answer_to_everything"] = fake_answer_to_everything_ml_model
yield
# Clean up the ML models and release the resources
ml_models.clear()
app = FastAPI(lifespan=lifespan)
@app.get("/predict")
async def predict(x: float):
result = ml_models["answer_to_everything"](x)
return {"result": result}
注意:这是未来推荐的方式,而不是使用 startup
和 shutdown
事件。
在新的文档中阅读更多内容:高级用户指南:生命周期事件。
文档¶
翻译¶
- 🌐 泰米尔语翻译 - 初始设置。PR #5564 by @gusty1g。
- 🌐 添加
docs/docs/advanced/path-operation-advanced-configuration.md
的法语翻译。PR #9221 by @axel584。 - 🌐 添加
docs/tutorial/debugging.md
的法语翻译。PR #9175 by @frabc。 - 🌐 启动亚美尼亚语翻译设置。PR #5844 by @har8。
- 🌐 添加
deployment/manually.md
的法语翻译。PR #3693 by @rjNemo。
内部¶
- 👷 更新翻译机器人消息。PR #9206 by @tiangolo。
- 👷 更新翻译机器人以使用 Discussions,并在 PR 完成时通知。PR #9183 by @tiangolo。
- 🔧 更新赞助商徽章。PR #9182 by @tiangolo。
- 👥 更新 FastAPI 人员列表。PR #9181 by @github-actions[bot]。
- 🔊 记录 FastAPI 人员列表中的 GraphQL 错误,因为它返回 200,但载荷中包含错误。PR #9171 by @tiangolo。
- 💚 修复/解决 Docker 中 GitHub Actions 与 git for FastAPI People 的问题。PR #9169 by @tiangolo。
- ♻️ 重构 FastAPI Experts,现在问题已迁移,仅使用 discussions。PR #9165 by @tiangolo。
- ⬆️ 升级分析功能。PR #6025 by @tiangolo。
- ⬆️ 升级并重新启用 Typer-CLI 的安装。PR #6008 by @tiangolo。
0.92.0¶
🚨 这是一个安全修复。请尽快升级。
升级¶
- ⬆️ 将 Starlette 升级到 0.25.0。PR #5996 by @tiangolo。
- 这解决了可能通过使用许多小型多部分字段/文件(部分)导致拒绝服务攻击的漏洞,这些攻击会消耗大量 CPU 和内存。
- 只有使用表单(例如文件上传)的应用程序可能受影响。
- 在大多数情况下,升级不会带来任何破坏性更改。
0.91.0¶
升级¶
0.90.1¶
升级¶
文档¶
- ✏ 调整措辞以澄清
docs/en/docs/project-generation.md
。PR #5930 by @chandra-deb。 - ✏ 更新 Pydantic GitHub URL。PR #5952 by @yezz123。
- 📝 添加 Cisco 的意见。PR #5981 by @tiangolo。
翻译¶
内部¶
- ✏ 更新
zip-docs.sh
内部脚本,移除多余空格。PR #5931 by @JuanPerdomo00。
0.90.0¶
升级¶
文档¶
- 📝 将文章“Tortoise ORM / FastAPI 整合快速笔记”添加到外部链接。PR #5496 by @Leon0824。
- 👥 更新 FastAPI 人员列表。PR #5954 by @github-actions[bot]。
- 📝 微调帮助文档。PR #5960 by @tiangolo。
- 🔧 更新新问题选择器以直接指向 GitHub Discussions。PR #5948 by @tiangolo。
- 📝 建议在 GitHub Discussions 中提问。PR #5944 by @tiangolo。
翻译¶
- 🌐 添加
docs/docs/tutorial/body-fields.md
的俄语翻译。PR #5898 by @simatheone。 - 🌐 添加
docs/docs/help-fastapi.md
的俄语翻译。PR #5970 by @tiangolo。 - 🌐 添加
docs/docs/tutorial/static-files.md
的葡萄牙语翻译。PR #5858 by @batlopes。 - 🌐 添加
docs/docs/tutorial/encoder.md
的葡萄牙语翻译。PR #5525 by @felipebpl。 - 🌐 添加
docs/docs/contributing.md
的俄语翻译。PR #5870 by @Xewus。
内部¶
- ⬆️ 升级文档工作流的 Ubuntu 版本。PR #5971 by @tiangolo。
- 🔧 更新赞助商徽章。PR #5943 by @tiangolo。
- ✨ 计算 FastAPI Experts 时包含 GitHub Discussions。PR #5941 by @tiangolo。
- ⬆️ 升级 isort 并更新 pre-commit。PR #5940 by @tiangolo。
- 🔧 添加 Discussions 中问题的模板。PR #5920 by @tiangolo。
- 🔧 将赞助商预算洞察更新为 Powens。PR #5916 by @tiangolo。
- 🔧 更新 GitHub 赞助商徽章数据。PR #5915 by @tiangolo。
0.89.1¶
修复¶
文档¶
- 📝 更新带有返回类型注解的 Response Model 的文档和示例,并更新运行时错误。PR #5873 by @tiangolo。新文档位于 响应模型 - 返回类型:其他返回类型注解。
- 📝 添加外部链接:FastAPI lambda 容器:无服务器简化。PR #5784 by @rafrasenberg。
翻译¶
- 🌐 添加
docs/docs/tutorial/first_steps.md
的土耳其语翻译。PR #5691 by @Kadermiyanyedi。
0.89.0¶
特性¶
现在您可以在函数返回类型注解中声明返回类型 / response_model
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
@app.get("/items/")
async def read_items() -> list[Item]:
return [
Item(name="Portal Gun", price=42.0),
Item(name="Plumbus", price=32.0),
]
FastAPI 将使用返回类型注解来执行
- 数据验证
- 自动文档生成
- 它可以支持自动客户端生成器
- 数据过滤
在此版本之前,它仅通过 response_model
参数支持。
在新的文档中阅读更多内容:响应模型 - 返回类型。
文档¶
- 📝 添加外部链接:FastAPI 授权与 Casbin。PR #5712 by @Xhy-5000。
- ✏ 修复
docs/en/docs/async.md
中的拼写错误。PR #5785 by @Kingdageek。 - ✏ 修复
docs/en/docs/deployment/concepts.md
中的拼写错误。PR #5824 by @kelbyfaessler。
翻译¶
- 🌐 添加
docs/docs/fastapi-people.md
的俄语翻译。PR #5577 by @Xewus。 - 🌐 修复
docs/docs/benchmarks.md
中文翻译的拼写错误。PR #4269 by @15027668g。 - 🌐 添加
docs/tutorial/cors.md
的韩语翻译。PR #3764 by @NinaHwang。
内部¶
- ⬆ 更新 coverage[toml] 需求从 <7.0,>=6.5.0 到 >=6.5.0,<8.0。PR #5801 by @dependabot[bot]。
- ⬆ 更新 uvicorn[standard] 需求从 <0.19.0,>=0.12.0 到 >=0.12.0,<0.21.0 用于开发。PR #5795 by @dependabot[bot]。
- ⬆ 将 dawidd6/action-download-artifact 从 2.24.2 提升到 2.24.3。PR #5842 by @dependabot[bot]。
- 👥 更新 FastAPI 人员列表。PR #5825 by @github-actions[bot]。
- ⬆ 将 types-ujson 从 5.5.0 提升到 5.6.0.0。PR #5735 by @dependabot[bot]。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.5.2 提升到 1.6.4。PR #5750 by @dependabot[bot]。
- 👷 添加 GitHub Action 门禁/检查。PR #5492 by @webknjaz。
- 🔧 更新赞助商,添加 Svix。PR #5848 by @tiangolo。
- 🔧 移除 Doist 赞助商。PR #5847 by @tiangolo。
- ⬆ 更新 sqlalchemy 需求从 <=1.4.41,>=1.3.18 到 >=1.3.18,<1.4.43。PR #5540 by @dependabot[bot]。
- ⬆ 将 nwtgck/actions-netlify 从 1.2.4 提升到 2.0.0。PR #5757 by @dependabot[bot]。
- 👷 重构 CI artifact 上传/下载,用于文档预览。PR #5793 by @tiangolo。
- ⬆ 将 pypa/gh-action-pypi-publish 从 1.5.1 提升到 1.5.2。PR #5714 by @dependabot[bot]。
- 👥 更新 FastAPI 人员列表。PR #5722 by @github-actions[bot]。
- 🔧 更新赞助商,禁用课程捆绑。PR #5713 by @tiangolo。
- ⬆ 更新 typer[all] 需求从 <0.7.0,>=0.6.1 到 >=0.6.1,<0.8.0。PR #5639 by @dependabot[bot]。
0.88.0¶
升级¶
文档¶
- ✏️ 修复
docs/en/docs/advanced/middleware.md
文档中的拼写错误。PR #5376 by @rifatrakib。
翻译¶
内部¶
- 👷 调整构建文档以提高 CI 性能。PR #5699 by @tiangolo。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #5566 by @pre-commit-ci[bot]。
- ⬆️ 升级 Ruff。PR #5698 by @tiangolo。
- 👷 移除 Smokeshow 的 pip 缓存,因为它依赖于 requirements.txt。PR #5700 by @tiangolo。
- 💚 修复 Smokeshow 的 pip 缓存。PR #5697 by @tiangolo。
- 👷 修复和调整 CI 缓存处理。PR #5696 by @tiangolo。
- 👷 更新测试中的
setup-python
action 以使用新的缓存功能。PR #5680 by @madkinsz。 - ⬆ 将 black 从 22.8.0 提升到 22.10.0。PR #5569 by @dependabot[bot]。
0.87.0¶
此版本的亮点
- 升级了 Starlette
- 现在
TestClient
基于 HTTPX 而不是 Requests。🚀 TestClient
的用法可能存在一些破坏性更改,但 @Kludex 构建了 bump-testclient 来帮助您自动化测试迁移。在使用bump-testclient
之前,请确保您正在使用 Git 并且可以撤消任何不必要的更改(误报更改等)。
- 现在
- 新的 WebSocketException(和文档),从 Starlette 重新导出。
- 升级并放宽了包额外依赖项
all
(包括新的 Uvicorn 版本),当您安装"fastapi[all]"
时。 - 关于如何 帮助维护 FastAPI 的新文档。
特性¶
- ⬆️ 升级并放宽 extras "all" 的依赖项。PR #5634 by @tiangolo。
- ✨ 重新导出 Starlette 的
WebSocketException
并将其添加到文档中。PR #5629 by @tiangolo。 - 📝 更新测试中 Requests 的引用为 HTTPX,并将 HTTPX 添加到 extras。PR #5628 by @tiangolo。
- ⬆ 将 Starlette 升级到
0.21.0
,包括基于 HTTPX 的新TestClient
。PR #5471 by @pawelrubin。
文档¶
- ✏️ 合并后根据 PR 审查调整帮助 FastAPI。PR #5633 by @tiangolo。
- ✏️ 澄清 CORS 文档。PR #5627 by @paxcodes。
- 📝 更新帮助 FastAPI:帮助维护 FastAPI。PR #5632 by @tiangolo。
翻译¶
- 🌐 修复
docs/tutorial/query-params.md
日语翻译的高亮行。PR #2969 by @ftnext。 - 🌐 添加
docs/docs/advanced/additional-status-code.md
的法语翻译。PR #5477 by @axel584。 - 🌐 添加
docs/docs/tutorial/request-forms-and-files.md
的葡萄牙语翻译。PR #5579 by @batlopes。 - 🌐 添加
docs/docs/advanced/websockets.md
的日语翻译。PR #4983 by @xryuseix。
内部¶
- ✨ 使用 Ruff 进行代码检查。PR #5630 by @tiangolo。
- 🛠 添加阿拉伯语问题编号到 Notify Translations GitHub Action。PR #5610 by @tiangolo。
- ⬆ 将 dawidd6/action-download-artifact 从 2.24.1 提升到 2.24.2。PR #5609 by @dependabot[bot]。
- ⬆ 将 dawidd6/action-download-artifact 从 2.24.0 提升到 2.24.1。PR #5603 by @dependabot[bot]。
- 📝 更新覆盖率徽章以使用 Samuel Colvin 的 Smokeshow。PR #5585 by @tiangolo。
0.86.0¶
特性¶
修复¶
文档¶
- ✏ 修复
docs/en/docs/tutorial/security/oauth2-jwt.md
中的拼写错误。PR #5584 by @vivekashok1221。
翻译¶
- 🌐 更新
docs/docs/python-types.md
中文翻译的措辞。PR #5416 by @supercaizehua。 - 🌐 添加
docs/docs/deployment/index.md
的俄语翻译。PR #5336 by @Xewus。 - 🌐 更新
docs/tutorial/security/oauth2-jwt.md
的中文翻译。PR #3846 by @jaystone776。
内部¶
- 👷 更新 FastAPI 人员列表以排除机器人:pre-commit-ci, dependabot。PR #5586 by @tiangolo。
- 🎨 格式化
test_starlette_exception.py
中的 OpenAPI JSON。PR #5379 by @iudeen。 - 👷 将 Codecov 切换到 Smokeshow 和 pytest-cov,以便内部测试使用纯 coverage。PR #5583 by @tiangolo。
- 👥 更新 FastAPI 人员列表。PR #5571 by @github-actions[bot]。
0.85.2¶
文档¶
- ✏ 修复
docs/en/docs/async.md
中的语法并添加有用的依赖项链接。PR #5432 by @pamelafox。 - ✏ 修复
alternatives.md
中的损坏链接。PR #5455 by @su-shubham。 - ✏ 修复文档中关于贡献的拼写错误,以兼容 Zsh 中的
pip
。PR #5523 by @zhangbo2012。 - 📝 修复文档中示例的拼写错误,使用 Python 3.10 而不是 3.9。PR #5545 by @feliciss。
翻译¶
- 🌐 添加
docs/docs/tutorial/request-forms.md
的葡萄牙语翻译。PR #4934 by @batlopes。 - 🌐 添加
docs/docs/tutorial/dependencies/classes-as-dependencies.md
的中文翻译。PR #4971 by @Zssaer。 - 🌐 添加
deployment/deta.md
的法语翻译。PR #3692 by @rjNemo。 - 🌐 更新
docs/docs/tutorial/query-params-str-validations.md
的中文翻译。PR #5255 by @hjlarry。 - 🌐 添加
docs/docs/tutorial/sql-databases.md
的中文翻译。PR #4999 by @Zssaer。 - 🌐 添加
docs/docs/advanced/wsgi.md
的中文翻译。PR #4505 by @ASpathfinder。 - 🌐 添加
docs/docs/tutorial/body-multiple-params.md
的葡萄牙语翻译。PR #4111 by @lbmendes。 - 🌐 添加
docs/docs/tutorial/path-params-numeric-validations.md
的葡萄牙语翻译。PR #4099 by @lbmendes。 - 🌐 添加
deployment/versions.md
的法语翻译。PR #3690 by @rjNemo。 - 🌐 添加
docs/docs/help-fastapi.md
的法语翻译。PR #2233 by @JulianMaurin。 - 🌐 修复
docs/docs/tutorial/security/first-steps.md
中文翻译的拼写错误。PR #5530 by @yuki1sntSnow。 - 🌐 添加
docs/docs/tutorial/response-status-code.md
的葡萄牙语翻译。PR #4922 by @batlopes。 - 🔧 为泰米尔语翻译添加配置。PR #5563 by @tiangolo。
内部¶
- ⬆ 将内部依赖 mypy 从 0.971 提升到 0.982。PR #5541 by @dependabot[bot]。
- ⬆ 将 nwtgck/actions-netlify 从 1.2.3 提升到 1.2.4。PR #5507 by @dependabot[bot]。
- ⬆ 将内部依赖 types-ujson 从 5.4.0 提升到 5.5.0。PR #5537 by @dependabot[bot]。
- ⬆ 将 dawidd6/action-download-artifact 从 2.23.0 提升到 2.24.0。PR #5508 by @dependabot[bot]。
- ⬆ 更新内部依赖 pytest-cov 需求从 <4.0.0,>=2.12.0 到 >=2.12.0,<5.0.0。PR #5539 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #5536 by @pre-commit-ci[bot]。
- 🐛 修复内部 Trio 测试警告。PR #5547 by @samuelcolvin。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #5408 by @pre-commit-ci[bot]。
- ⬆️ 升级 Typer 以在文档脚本中包含 Rich。PR #5502 by @tiangolo。
- 🐛 修复为语言调用
mkdocs
作为子进程,以修复/启用 MkDocs Material 搜索插件。PR #5501 by @tiangolo。
0.85.1¶
修复¶
- 🐛 修复 OpenAPI 状态码中字符串的支持:
default
,1XX
,2XX
,3XX
,4XX
,5XX
。PR #5187 by @JarroVGIT。
文档¶
内部¶
- 👥 更新 FastAPI 人员列表。PR #5447 by @github-actions[bot]。
- 🔧 禁用 MkDocs Material 搜索插件。PR #5495 by @tiangolo。
- 🔇 忽略 CI 测试中的 Trio 警告。PR #5483 by @samuelcolvin。
0.85.0¶
特性¶
- ⬆ 将 Starlette 的最低版本从
0.19.1
升级到0.20.4
。初始 PR #4820 by @Kludex。- 这包含了 Starlette 中的几个错误修复。
- ⬆️ 在公共额外依赖项中升级 Uvicorn 最大版本:all。从
>=0.12.0,<0.18.0
到>=0.12.0,<0.19.0
。PR #5401 by @tiangolo。
内部¶
- ⬆️ 升级文档和开发内部额外依赖项:Typer, Uvicorn。PR #5400 by @tiangolo。
- ⬆️ 升级测试依赖项:Black, HTTPX, databases, types-ujson。PR #5399 by @tiangolo。
- ⬆️ 升级 mypy 并调整内部类型注解。PR #5398 by @tiangolo。
- 🔧 更新测试依赖项,升级 Pytest,将依赖项从 dev 移到 test。PR #5396 by @tiangolo。
0.84.0¶
破坏性更改¶
此版本的 FastAPI 不再支持 Python 3.6。🔥 请升级到受支持的 Python 版本(3.7 或更高),Python 3.6 很久以前就已经终止生命周期了。😅☠
0.83.0¶
🚨 这可能是支持 Python 3.6 的最后一个版本(或其中之一)。🔥
Python 3.6 已于大约一年前终止生命周期,不再受 Python 支持。
您希望很久以前就已更新到受支持的 Python 版本。如果您还没有,您真的应该这样做。
特性¶
修复¶
- 🐛 修复当
HTTPException
的状态码没有内容时引发RuntimeError
的问题。PR #5365 by @iudeen。 - 🐛 修复当默认
status_code
为空但设置了带有response.status_code
的Response
参数时响应体为空的问题。PR #5360 by @tmeckel。
文档¶
内部¶
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #5352 by @pre-commit-ci[bot]。
0.82.0¶
🚨 这可能是支持 Python 3.6 的最后一个版本(或其中之一)。🔥
Python 3.6 已于大约一年前终止生命周期,不再受 Python 支持。
您希望很久以前就已更新到受支持的 Python 版本。如果您还没有,您真的应该这样做。
特性¶
- ✨ 在
fastapi.websockets
中导出WebSocketState
。PR #4376 by @matiuszka。 - ✨ 支持 Pydantic 模型 docstring 中的 Python 内部描述。PR #3032 by @Kludex。
- ✨ 更新
ORJSONResponse
以支持非str
键和序列化 Numpy 数组。PR #3892 by @baby5。
修复¶
- 🐛 允许带有
yield
的依赖项的退出代码始终执行,通过删除其容量限制,例如允许关闭数据库连接而不死锁。PR #5122 by @adriangb。 - 🐛 修复 FastAPI People GitHub Action:为 GraphQL 查询请求设置 HTTPX 超时。PR #5222 by @iudeen。
- 🐛 确保即使在另一个依赖项中定义为可选的参数,在 OpenAPI 中也保持必需。PR #4319 by @cd17822。
- 🐛 修复 WebSockets 中路径参数的支持。PR #3879 by @davidbrochart。
文档¶
- ✏ 更新 Hypercorn 链接,现在指向 GitHub。PR #5346 by @baconfield。
- ✏ 调整
docs/en/docs/advanced/dataclasses.md
中的措辞。PR #3698 by @pfackeldey。 - 📝 添加关于 Python 3.10
X | Y
运算符在响应模型解释中的说明。PR #5307 by @MendyLanda。 - 📝 添加 New Relic 文章链接:“如何使用 Python 代理监控 FastAPI 应用程序性能”。PR #5260 by @sjyothi54。
- 📝 更新
ORJSONResponse
文档,详细说明如何提高性能。PR #2615 by @falkben。 - 📝 添加创建自定义响应类的文档。PR #5331 by @tiangolo。
- 📝 添加关于为表单数据字段使用别名的提示。PR #5329 by @tiangolo。
翻译¶
- 🌐 添加
docs/docs/features.md
的俄语翻译。PR #5315 by @Xewus。 - 🌐 更新
docs/docs/tutorial/request-files.md
的中文翻译。PR #4529 by @ASpathfinder。 - 🌐 添加
docs/docs/tutorial/encoder.md
的中文翻译。PR #4969 by @Zssaer。 - 🌐 修复
background-task.md
葡萄牙语翻译的 MkDocs 文件行。PR #5242 by @ComicShrimp。
内部¶
- 👥 更新 FastAPI 人员列表。PR #5347 by @github-actions[bot]。
- ⬆ 将 dawidd6/action-download-artifact 从 2.22.0 提升到 2.23.0。PR #5321 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #5318 by @pre-commit-ci[bot]。
- ✏ 修复一个小代码高亮行错误。PR #5256 by @hjlarry。
- ♻ 内部小重构,将
operation_id
参数位置移到 delete 方法中,以与代码保持一致。PR #4474 by @hiel。 - 🔧 更新赞助商,禁用 ImgWhale。PR #5338 by @tiangolo。
0.81.0¶
特性¶
- ✨ 添加 ReDoc
<noscript>
警告,当 JS 被禁用时。PR #5074 by @evroon。 - ✨ 添加对参数(例如查询)中
FrozenSet
的支持。PR #2938 by @juntatalor。 - ✨ 允许自定义中间件引发
HTTPException
并传播它们。PR #2036 by @ghandic。 - ✨ 在处理请求体中的无效 JSON 时保留
json.JSONDecodeError
信息,以支持使用其信息的自定义异常处理程序。PR #4057 by @UKnowWhoIm。
修复¶
- 🐛 修复
jsonable_encoder
对于带有 pydantic 兼容字段的 dataclasses 的问题。PR #3607 by @himbeles。 - 🐛 修复对使用参数列表扩展
openapi_extras
的支持。PR #4267 by @orilevari。
文档¶
- ✏ 修复
docs/en/docs/python-types.md
中的一个简单拼写错误。PR #5193 by @GlitchingCore。 - ✏ 修复
tests/test_schema_extra_examples.py
中的拼写错误。PR #5126 by @supraaxdd。 - ✏ 修复
docs/en/docs/tutorial/path-params-numeric-validations.md
中的拼写错误。PR #5142 by @invisibleroads。 - 📝 在
docs/en/docs/contributing.md
中添加了关于在 venv 中升级 pip 以避免安装依赖项时出错的步骤。PR #5181 by @edisnake。 - ✏ 重写并澄清教程
docs/en/docs/tutorial/body-nested-models.md
中的文本。PR #5169 by @papb。 - ✏ 修复
docs/en/docs/features.md
中的小拼写错误。PR #5206 by @OtherBarry。 - ✏ 修复
docs/en/docs/async.md
中的小拼写错误。PR #5125 by @Ksenofanex。 - 📝 添加外部链接到文档:“Fastapi, Docker(Docker compose) and Postgres”。PR #5033 by @krishnardt。
- 📝 简化附加响应文档的示例,删除不必要的
else
。PR #4693 by @adriangb。 - 📝 更新文档,比较枚举时使用身份而不是相等性。PR #4905 by @MicaelJarniac。
- ✏ 修复
docs/en/docs/python-types.md
中的拼写错误。PR #4886 by @MicaelJarniac。 - 🎨 修复 OpenAPI 回调文档中的语法高亮显示。PR #4368 by @xncbf。
- ✏ 重写文档文件
typo-fix-path-params-numeric-validations.md
中令人困惑的句子。PR #3219 by @ccrenfroe。 - 📝 更新文档,说明如何使用
secrets.compare_digest()
处理 HTTP Basic Auth,以考虑非 ASCII 字符。PR #3536 by @lewoudar。 - 📝 更新测试文档,修复带有相对导入的示例。PR #5302 by @tiangolo。
翻译¶
- 🌐 添加
docs/docs/index.md
的俄语翻译。PR #5289 by @impocode。 - 🌐 添加
docs/docs/deployment/versions.md
的俄语翻译。PR #4985 by @emp7yhead。 - 🌐 添加
docs/docs/tutorial/header-params.md
的葡萄牙语翻译。PR #4921 by @batlopes。 - 🌐 更新
ko/mkdocs.yml
以修复缺失的链接。PR #5020 by @dalinaum。
内部¶
- ⬆ 将 dawidd6/action-download-artifact 从 2.21.1 提升到 2.22.0。PR #5258 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #5196 by @pre-commit-ci[bot]。
- 🔥 删除
tests/test_tutorial/test_sql_databases/test_sql_databases.py
中的重复测试。PR #5040 by @raccoonyy。 - ♻ 简化
fastapi/utils.py
中的内部正则表达式。PR #5057 by @pylounge。 - 🔧 修复
auto_error
的类型提示,它不需要是Optional[bool]
。PR #4933 by @DavidKimDY。 - 🔧 更新 mypy 配置,使用
strict = true
而非手动配置。PR #4605 by @michaeloliverx。 - ♻ 将
fastapi/utils.py
中的dict()
更改为{}
。PR #3138 by @ShahriyarR。 - ♻ 将
jsonable_encoder
中用于错误的内部变量移动,使相关代码更接近。PR #4560 by @GuilleQP。 - ♻ 简化
fastapi/dependencies/utils.py
中的条件赋值。PR #4597 by @cikay。 - ⬆ 内部代码的 Flake8 版本限制更新为
flake8 >=3.8.3,<6.0.0
。PR #4097 by @jamescurtin。 - 🍱 更新 Jina 横幅,修复拼写错误。PR #5301 by @tiangolo。
0.80.0¶
破坏性更改 - 修复¶
如果您使用 response_model
且其类型不包含 None
但函数返回 None
,现在将引发内部服务器错误,因为您返回了违反 response_model
合同的无效数据。在此版本之前,它允许违反该合同并返回 None
。
例如,如果您有一个这样的应用程序
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: Optional[float] = None
owner_ids: Optional[List[int]] = None
app = FastAPI()
@app.get("/items/invalidnone", response_model=Item)
def get_invalid_none():
return None
......调用路径 /items/invalidnone
将引发错误,因为 None
不是声明为 Item
的 response_model
的有效类型。
您也可能在不知不觉中隐式返回 None
,例如
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: Optional[float] = None
owner_ids: Optional[List[int]] = None
app = FastAPI()
@app.get("/items/invalidnone", response_model=Item)
def get_invalid_none():
if flag:
return {"name": "foo"}
# if flag is False, at this point the function will implicitly return None
如果您使用 response_model
的路径操作需要允许返回 None
,请在 response_model
中使用 Union[Something, None]
明确声明
from typing import Union
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: Optional[float] = None
owner_ids: Optional[List[int]] = None
app = FastAPI()
@app.get("/items/invalidnone", response_model=Union[Item, None])
def get_invalid_none():
return None
这样数据将得到正确验证,您将不会遇到内部服务器错误,并且文档也将反映此路径操作可能返回 None
(或 JSON 中的 null
)。
修复¶
- ⬆ 升级 Swagger UI 中
oauth2-redirect.html
的副本,以包含对 Swagger UI 中授权代码流变体的修复。PR #3439 初始 PR by @koonpeng。 - ♻ 从 docstrings 中提取的描述中去除空白色字符。PR #2821 by @and-semakin。
- 🐛 修复在使用
Security()
和其他地方(例如Depends()
)使用不同 OAuth2 作用域的依赖项时,缓存依赖项的问题。PR #2945 by @laggardkernel。 - 🎨 更新
response_model
的类型注解,允许诸如Union[str, None]
之类的类型。PR #5294 by @tiangolo。
翻译¶
- 🌐 修复
docs/docs/features.md
德语翻译中的拼写错误。PR #4533 by @0xflotus。 - 🌐 添加韩语翻译中
encoder.md
缺失的导航器。PR #5238 by @joonas-yoon。 - (意外合并的空 PR) #4913。
0.79.1¶
修复¶
- 🐛 修复
jsonable_encoder
对非 Pydantic 对象使用include
和exclude
参数的问题。PR #2606 by @xaviml。 - 🐛 修复 OpenAPI 中不显示重复别名名称的边缘情况。PR #2351 by @klaa97。
- 📝 在教程文档中添加杂项依赖项安装。PR #2126 by @TeoZosa。
文档¶
- 📝 添加注释,将插图归功于 Ketrina Thompson。PR #5284 by @tiangolo。
- ✏ 修复
python-types.md
中的拼写错误。PR #5116 by @Kludex。 - ✏ 修复
docs/en/docs/python-types.md
中的拼写错误。PR #5007 by @atiabbz。 - 📝 从异步主题介绍中删除不需要的 Django/Flask 引用。PR #5280 by @carltongibson。
- ✨ 添加并发汉堡和并行汉堡的插图。PR #5277 by @tiangolo。更新文档位于:并发与汉堡。
翻译¶
- 🌐 添加
docs/docs/tutorial/query-params.md
的葡萄牙语翻译。PR #4775 by @batlopes。 - 🌐 添加
docs/docs/tutorial/security/first-steps.md
的葡萄牙语翻译。PR #4954 by @FLAIR7。 - 🌐 添加
docs/docs/advanced/response-cookies.md
的翻译。PR #4638 by @zhangbo2012。 - 🌐 添加
docs/docs/deployment/index.md
的法语翻译。PR #3689 by @rjNemo。 - 🌐 添加
tutorial/handling-errors.md
的葡萄牙语翻译。PR #4769 by @frnsimoes。 - 🌐 添加
docs/docs/history-design-future.md
的法语翻译。PR #3451 by @rjNemo。 - 🌐 添加
docs/docs/tutorial/background-tasks.md
的俄语翻译。PR #4854 by @AdmiralDesu。 - 🌐 添加
docs/tutorial/security/first-steps.md
的中文翻译。PR #3841 by @jaystone776。 - 🌐 添加
docs/docs/advanced/nosql-databases.md
的日语翻译。PR #4205 by @sUeharaE4。 - 🌐 添加
docs/docs/tutorial/index.md
的印度尼西亚语翻译。PR #4705 by @bas-baskara。 - 🌐 添加
docs/docs/index.md
的波斯语翻译并调整从右到左的 CSS。PR #2395 by @mohsen-mahmoodi。
内部¶
- 🔧 更新 Jina 赞助。PR #5283 by @tiangolo。
- 🔧 更新 Jina 赞助。PR #5272 by @tiangolo。
- 🔧 更新赞助商,Striveworks 徽章。PR #5179 by @tiangolo。
0.79.0¶
修复 - 破坏性更改¶
- 🐛 修复从不支持响应体的状态码中移除响应体的问题。PR #5145 by @tiangolo。
- 将
status_code
设置为204
、304
或任何低于200
的代码(1xx)将从响应中移除响应体。 - 这修复了 Uvicorn 中否则会抛出的错误:
RuntimeError: Response content longer than Content-Length
。 - 这移除了
fastapi.openapi.constants.STATUS_CODES_WITH_NO_BODY
,它被 utils 中的一个函数取代。
- 将
翻译¶
- 🌐 希伯来语翻译开始。PR #5050 by @itay-raveh。
- 🔧 为瑞典语翻译通知添加配置。PR #5147 by @tiangolo。
- 🌐 瑞典语翻译开始。PR #5062 by @MrRawbin。
- 🌐 添加
docs/docs/advanced/index.md
的日语翻译。PR #5043 by @wakabame。 - 🌐🇵🇱 为
docs/docs/tutorial/first-steps.md
添加波兰语翻译。PR #5024 by @Valaraucoo。
内部¶
- 🔧 更新希伯来语翻译通知。PR #5158 by @tiangolo。
- 🔧 更新 Dependabot 提交信息。PR #5156 by @tiangolo。
- ⬆ 将 actions/upload-artifact 从 2 升级到 3。PR #5148 by @dependabot[bot]。
- ⬆ 将 actions/cache 从 2 升级到 3。PR #5149 by @dependabot[bot]。
- 🔧 更新赞助商徽章配置。PR #5155 by @tiangolo。
- 👥 更新 FastAPI 人员列表。PR #5154 by @tiangolo。
- 🔧 更新 Jina 赞助商徽章。PR #5151 by @tiangolo。
- ⬆ 将 actions/checkout 从 2 升级到 3。PR #5133 by @dependabot[bot]。
- ⬆ [pre-commit.ci] pre-commit 自动更新。PR #5030 by @pre-commit-ci[bot]。
- ⬆ 将 nwtgck/actions-netlify 从 1.1.5 升级到 1.2.3。PR #5132 by @dependabot[bot]。
- ⬆ 将 codecov/codecov-action 从 2 升级到 3。PR #5131 by @dependabot[bot]。
- ⬆ 将 dawidd6/action-download-artifact 从 2.9.0 升级到 2.21.1。PR #5130 by @dependabot[bot]。
- ⬆ 将 actions/setup-python 从 2 升级到 4。PR #5129 by @dependabot[bot]。
- 👷 添加 Dependabot。PR #5128 by @tiangolo。
- ♻️ 内部工具中将
Optional[X]
移至Union[X, None]
。PR #5124 by @tiangolo。 - 🔧 更新赞助商,移除 Dropbase,添加 Doist。PR #5096 by @tiangolo。
- 🔧 更新赞助商,移除 Classiq,添加 ImgWhale。PR #5079 by @tiangolo。
0.78.0¶
新功能¶
-
✨ 添加了在声明必填参数时省略
...
作为默认值的支持。 -
Path()
Query()
Header()
Cookie()
Body()
Form()
File()
新文档位于 教程 - 查询参数和字符串验证 - 设为必填项。PR #4906 by @tiangolo。
到目前为止,声明一个必填参数同时添加额外验证或元数据需要使用 ...
(省略号)。
例如:
from fastapi import Cookie, FastAPI, Header, Path, Query
app = FastAPI()
@app.get("/items/{item_id}")
def main(
item_id: int = Path(default=..., gt=0),
query: str = Query(default=..., max_length=10),
session: str = Cookie(default=..., min_length=3),
x_trace: str = Header(default=..., title="Tracing header"),
):
return {"message": "Hello World"}
...所有这些参数都是必填的,因为默认值是 ...
(省略号)。
但现在可以并且支持直接省略默认值,就像 Pydantic 字段那样,参数仍然是必填的。
✨ 例如,现在支持这样写:
from fastapi import Cookie, FastAPI, Header, Path, Query
app = FastAPI()
@app.get("/items/{item_id}")
def main(
item_id: int = Path(gt=0),
query: str = Query(max_length=10),
session: str = Cookie(min_length=3),
x_trace: str = Header(title="Tracing header"),
):
return {"message": "Hello World"}
要声明参数为可选(非必填),您可以像往常一样设置一个默认值,例如使用 None
。
from typing import Union
from fastapi import Cookie, FastAPI, Header, Path, Query
app = FastAPI()
@app.get("/items/{item_id}")
def main(
item_id: int = Path(gt=0),
query: Union[str, None] = Query(default=None, max_length=10),
session: Union[str, None] = Cookie(default=None, min_length=3),
x_trace: Union[str, None] = Header(default=None, title="Tracing header"),
):
return {"message": "Hello World"}
文档¶
- 📝 添加了建议使用
Union
而非Optional
的文档,并迁移了源代码示例。新文档位于 Python 类型介绍 - 使用Union
或Optional
。PR #4908 by @tiangolo。 - 🎨 修复了路径操作高级配置教程中设置的默认值。PR #4899 by @tiangolo。
- 📝 添加了关于重定义路径操作的文档。PR #4864 by @madkinsz。
- 📝 更新了 Celery 文档的链接。PR #4736 by @sammyzord。
- ✏ 修复了主体嵌套模型教程中包含集合的示例代码。PR #3030 by @hitrust。
- ✏ 修复了 Pydantic 文档的链接。PR #4670 by @kinuax。
- 📝 更新了关于 Swagger UI 自托管的文档,附带了更新的源链接。PR #4813 by @Kastakin。
- 📝 添加了外部文章链接:使用 FastAPI 和 React 从 Django 教程构建投票应用。PR #4778 by @jbrocher。
- 📝 在“主体 - 字段”文档中添加了 OpenAPI 警告,包含额外的 Schema 扩展。PR #4846 by @ml-evs。
翻译¶
- 🌐 修复了
docs/docs/tutorial/testing.md
的日语翻译中的代码示例。PR #4623 by @hirotoKirimaru。
内部¶
- ♻ 重构字典值提取以最小化键查找
fastapi/utils.py
。PR #3139 by @ShahriyarR。 - ✅ 为必填的不可为空参数和主体字段添加了测试。PR #4907 by @tiangolo。
- 👷 修复了 CI 中 Material for MkDocs Insiders 的安装。PR #4897 by @tiangolo。
- 👷 添加 pre-commit CI 替代自定义 GitHub Action。PR #4896 by @tiangolo。
- 👷 添加 pre-commit GitHub Action 工作流。PR #4895 by @tiangolo。
- 📝 基于操作系统偏好为文档添加暗模式自动切换。PR #4869 by @ComicShrimp。
- 🔥 移除了未使用的旧待处理测试,这些测试已在其他地方覆盖。PR #4891 by @tiangolo。
- 🔧 添加 Python 格式化钩子到 pre-commit。PR #4890 by @tiangolo。
- 🔧 添加 pre-commit,包含初始配置和首次格式化。PR #4888 by @tiangolo。
- 👷 禁用 CI 在分支中安装 Material for MkDocs。PR #4410 by @dolfinus。
0.77.1¶
升级¶
文档¶
- 📝 添加德语文章链接:使用 Python 和 FastAPI 模块进行 REST-API 编程。PR #4624 by @fschuermeyer。
- 📝 添加外部链接:PyCharm FastAPI 指南。PR #4512 by @mukulmantosh。
- 📝 添加外部文章链接:使用 FastAPI 和 Supabase 构建 API 并在 Deta 上部署。PR #4440 by @aUnicornDev。
- ✏ 修复
docs/en/docs/tutorial/security/first-steps.md
中的小错字。PR #4515 by @KikoIlievski。
翻译¶
- 🌐 为
docs/docs/tutorial/index.md
添加波兰语翻译。PR #4516 by @MKaczkow。 - ✏ 修复部署中的错字。PR #4629 by @raisulislam541。
- 🌐 为
docs/docs/help-fastapi.md
添加葡萄牙语翻译。PR #4583 by @mateusjs。
内部¶
0.77.0¶
升级¶
文档¶
- 📝 添加外部文章链接:使用 ConfZ 无缝配置 FastAPI。PR #4414 by @silvanmelchior。
- 📝 添加外部文章链接:您应该尝试的 FastAPI 5 大高级功能。PR #4436 by @kaustubhgupta。
- ✏ 重新措辞以提高
TestClient
文档的可读性。PR #4389 by @rgilton。 - 📝 添加外部博客文章链接,内容关于 Kafka、FastAPI 和 Ably。PR #4044 by @Ugbot。
- ✏ 修复
docs/en/docs/tutorial/sql-databases.md
中的错字。PR #4875 by @wpyoga。 - ✏ 修复
docs/en/docs/async.md
中的错字。PR #4726 by @Prezu。
翻译¶
- 🌐 更新
docs/docs/tutorial/query-params-str-validations.md
的源代码示例高亮。PR #4237 by @caimaoy。 - 🌐 移除翻译文档中对 aiofiles 的引用,因为它自 AnyIO 以来不再需要。PR #3594 by @alonme。
- ✏ 🌐 修复
docs/docs/tutorial/path-params.md
的葡萄牙语翻译中的错字。PR #4722 by @CleoMenezesJr。 - 🌐 修复某些语言翻译的实时文档服务器。PR #4729 by @wakabame。
- 🌐 为
docs/docs/tutorial/cookie-params.md
添加葡萄牙语翻译。PR #4112 by @lbmendes。 - 🌐 修复
docs/tutorial/body.md
的法语翻译。PR #4332 by @Smlep。 - 🌐 为
docs/docs/advanced/conditional-openapi.md
添加日语翻译。PR #2631 by @sh0nk。 - 🌐 修复
docs/docs/tutorial/body.md
的日语翻译。PR #3062 by @a-takahashi223。 - 🌐 为
docs/docs/tutorial/background-tasks.md
添加葡萄牙语翻译。PR #2170 by @izaguerreiro。 - 🌐 为
docs/deployment/deta.md
添加葡萄牙语翻译。PR #4442 by @lsglucas。 - 🌐 为
docs/async.md
添加俄语翻译。PR #4036 by @Winand。 - 🌐 为
docs/tutorial/body.md
添加葡萄牙语翻译。PR #3960 by @leandrodesouzadev。 - 🌐 添加
tutorial/extra-data-types.md
的葡萄牙语翻译。PR #4077 by @luccasmmg。 - 🌐 更新
docs/features.md
的德语翻译。PR #3905 by @jomue。
0.76.0¶
升级¶
内部¶
- 👥 更新 FastAPI 人员列表。PR #4847 by @github-actions[bot]。
- 🔧 添加 Budget Insight 赞助商。PR #4824 by @tiangolo。
- 🍱 更新赞助商,ExoFlare 徽章。PR #4822 by @tiangolo。
- 🔧 更新赞助商,再次启用 Dropbase,更新 TalkPython 链接。PR #4821 by @tiangolo。
0.75.2¶
此版本包含第三方包的升级,以解决安全问题。尽管这些问题可能不会特别影响您,但请尽快升级。
修复¶
- ✅ 修复新/近期测试与新的固定
ValidationError
JSON Schema。PR #4806 by @tiangolo。 - 🐛 修复字段
loc
处的ValidationError
的 JSON Schema。PR #3810 by @dconathan。 - 🐛 修复 APIRouter WebSockets 前缀支持。PR #2640 by @Kludex。
升级¶
- ⬆️ 更新 ujson 范围以应对 CVE-2021-45958。PR #4804 by @tiangolo。
- ⬆️ 升级“all”额外依赖的上限范围。PR #4803 by @tiangolo。
- ⬆ 升级 Swagger UI - swagger-ui-dist@4。这解决了 Swagger UI 本身的一个安全问题,即可能将 HTML 注入 Swagger UI。请尽快升级,特别是如果您将 Swagger UI (
/docs
) 公开给非专业用户。PR #4347 by @RAlanWright。
内部¶
- 🔧 更新赞助商,添加:ExoFlare、Ines Course;移除:Dropbase、Vim.so、Calmcode;更新:Striveworks、TalkPython 和 TestDriven.io。PR #4805 by @tiangolo。
- ⬆️ 升级 Codecov GitHub Action。PR #4801 by @tiangolo。
0.75.1¶
翻译¶
- 🌐 开始荷兰语翻译。PR #4703 by @tiangolo。
- 🌐 开始波斯语/法尔西语翻译。PR #4243 by @aminalaee。
- ✏ 重新措辞关于错误处理的句子。PR #1993 by @khuhroproeza。
内部¶
- 👥 更新 FastAPI 人员列表。PR #4752 by @github-actions[bot]。
- ➖ 暂时从依赖中移除 typer-cli 并升级 Black 以解除 Pydantic CI 阻塞。PR #4754 by @tiangolo。
- 🔧 添加配置以通知荷兰语翻译。PR #4702 by @tiangolo。
- 👥 更新 FastAPI 人员列表。PR #4699 by @github-actions[bot]。
- 🐛 修复 FastAPI 人员列表生成以包含提交中缺失的文件。PR #4695 by @tiangolo。
- 🔧 更新 Classiq 赞助商链接。PR #4688 by @tiangolo。
- 🔧 添加 Classiq 赞助商。PR #4671 by @tiangolo。
- 📝 添加 Jina 的 QA 机器人到文档中,以帮助用户快速提问。PR #4655 by @tiangolo 基于原始 PR #4626 by @hanxiao。
0.75.0¶
新功能¶
- ✨ 添加了对自定义
generate_unique_id_function
的支持以及生成客户端的文档。新文档:高级 - 生成客户端。PR #4650 by @tiangolo。
0.74.1¶
新功能¶
0.74.0¶
破坏性变更¶
带有 yield
的依赖现在可以捕获 HTTPException
和自定义异常。例如:
async def get_database():
with Session() as session:
try:
yield session
except HTTPException:
session.rollback()
raise
finally:
session.close()
在带有 yield
的依赖处理(或未处理)异常后,异常会再次抛出。这样任何异常处理程序都可以捕获它,或者最终由默认的内部 ServerErrorMiddleware
处理。
如果您依赖于带有 yield
的依赖不接收异常,并且接收异常会破坏 yield
之后的代码,您可以使用 try
和 finally
块:
async def do_something():
try:
yield something
finally:
some_cleanup()
...这样,finally
块无论是否发生异常都会运行。
新功能¶
- 上面的同一个 PR #4575 也修复了
yield
之前和之后的代码的contextvars
上下文。这是该 PR 的主要目标。
这意味着现在,如果您在 yield
之前在一个上下文变量中设置了一个值,该值在 yield
之后仍然可用(正如您直观地期望的那样)。这也意味着您可以在之后用一个令牌重置上下文变量。
例如,现在这样可以正常工作:
from contextvars import ContextVar
from typing import Any, Dict, Optional
legacy_request_state_context_var: ContextVar[Optional[Dict[str, Any]]] = ContextVar(
"legacy_request_state_context_var", default=None
)
async def set_up_request_state_dependency():
request_state = {"user": "deadpond"}
contextvar_token = legacy_request_state_context_var.set(request_state)
yield request_state
legacy_request_state_context_var.reset(contextvar_token)
...在此更改之前,当重置上下文变量时会引发错误,因为 contextvars
上下文不同,这是由于其实现方式造成的。
注意:您可能不需要 contextvars
,并且您应该避免使用它们。但它们在某些高级场景中非常强大和有用,例如,从使用 Flask 的 g
半全局变量的代码迁移。
技术细节:如果您想了解更多技术细节,可以查看 PR 描述 #4575。
内部¶
- 🔧 添加 Striveworks 赞助商。PR #4596 by @tiangolo。
- 💚 仅在 master 分支上推送时构建文档,以避免 PR 导致的重复运行。PR #4564 by @tiangolo。
- 👥 更新 FastAPI 人员列表。PR #4502 by @github-actions[bot]。
0.73.0¶
新功能¶
- ✨ 添加了对不显式使用
File()
声明UploadFile
参数的支持。PR #4469 by @tiangolo。新文档:请求文件 - 使用 UploadFile 的文件参数。 - ✨ 添加了对带有 Enums 的标签的支持。PR #4468 by @tiangolo。新文档:路径操作配置 - 带有 Enums 的标签。
- ✨ 允许从 OpenAPI(和 Swagger UI)中隐藏
Query
、Cookie
、Header
和Path
参数。PR #3144 by @astraldawn。新文档:查询参数和字符串验证 - 从 OpenAPI 中排除。
文档¶
修复¶
- 🐛 修复了使用元组时阻止使用 OpenAPI 的错误。PR #3874 by @victorbenichoux。
- 🐛 如果在
jsonable_encoder
中指定,则优先使用自定义编码器而非默认值。PR #2061 by @viveksunder。
内部¶
- 🐛 修复文档依赖缓存,以获取最新的 Material for MkDocs。PR #4466 by @tiangolo。
- 🔧 添加赞助商 Dropbase。PR #4465 by @tiangolo。
0.72.0¶
新功能¶
- ✨ 启用配置 Swagger UI 参数。原始 PR #2568 by @jmriebold。新文档在此:配置 Swagger UI。
文档¶
翻译¶
- 🌐 更新
docs/help-fastapi.md
的中文翻译。PR #3847 by @jaystone776。 - 🌐 修复
docs/docs/index.md
的韩语翻译。PR #4195 by @kty4119。 - 🌐 为
docs/docs/index.md
添加波兰语翻译。PR #4245 by @MicroPanda123。 - 🌐 为
docs\tutorial\path-operation-configuration.md
添加中文翻译。PR #3312 by @jaystone776。
内部¶
0.71.0¶
新功能¶
- ✨ 添加了 Python 3.9 和 Python 3.10 的文档和测试。PR #3712 by @tiangolo。
- 您可以从 Python 类型介绍 开始,它解释了不同 Python 版本(Python 3.9 和 Python 3.10)之间的变化。
- 所有 FastAPI 文档均已更新。文档中每个在 Python 3.9 或 Python 3.10 中可以使用不同语法的代码示例现在都在选项卡中包含了所有替代方案。
- ⬆️ 将 Starlette 升级到 0.17.1。PR #4145 by @simondale00。
内部¶
- 👥 更新 FastAPI 人员列表。PR #4354 by @github-actions[bot]。
- 🔧 添加 FastAPI PyPI 的 Trove 分类器,因为现在有一个了 🤷😁。PR #4386 by @tiangolo。
- ⬆ 升级 MkDocs Material 和配置。PR #4385 by @tiangolo。
0.70.1¶
这个 FastAPI 版本没有什么特别有趣的地方。它主要是为了启用/解除 Pydantic 下一个版本的发布,该版本将带来许多新功能和改进。🤩
修复¶
- 🐛 修复 dataclasses 的 JSON Schema,支持 Pydantic 1.9 中的修复。PR #4272 by @PrettyWood。
翻译¶
- 🌐 为
docs/tutorial/request-forms-and-files.md
添加韩语翻译。PR #3744 by @NinaHwang。 - 🌐 为
docs/tutorial/request-files.md
添加韩语翻译。PR #3743 by @NinaHwang。 - 🌐 为
docs/tutorial/query-params-str-validations.md
添加葡萄牙语翻译。PR #3965 by @leandrodesouzadev。 - 🌐 为
docs/tutorial/response-status-code.md
添加韩语翻译。PR #3742 by @NinaHwang。 - 🌐 为教程 - JSON 兼容编码器添加韩语翻译。PR #3152 by @NEONKID。
- 🌐 为教程 - 路径参数和数字验证添加韩语翻译。PR #2432 by @hard-coders。
- 🌐 为
docs/docs/deployment/versions.md
添加韩语翻译。PR #4121 by @DevDae。 - 🌐 修复
docs/docs/tutorial/index.md
的韩语翻译。PR #4193 by @kimjaeyoonn。 - 🔧 添加 CryptAPI 赞助商。PR #4264 by @tiangolo。
- 📝 更新
docs/tutorial/dependencies/classes-as-dependencies
:在Classes as dependencies
的描述中添加查询参数类型。PR #4015 by @0417taehyun。 - 🌐 为教程 - 入门添加法语翻译。PR #3455 by @Smlep。
- 🌐 为
docs/tutorial/path-params.md
添加法语翻译。PR #3548 by @Smlep。 - 🌐 为
docs/tutorial/query-params.md
添加法语翻译。PR #3556 by @Smlep。 - 🌐 为
docs/python-types.md
添加土耳其语翻译。PR #3926 by @BilalAlpaslan。
内部¶
- 👥 更新 FastAPI 人员列表。PR #4274 by @github-actions[bot]。
0.70.0¶
此版本仅将 Starlette 升级到最新版本 0.16.0
,其中包括多项错误修复和一些小的破坏性变更。
这最后三个连续版本是独立的,以便您可以逐步迁移:
- 首先到 FastAPI
0.68.2
,没有破坏性变更,但升级了所有子依赖项。 - 接下来到 FastAPI
0.69.0
,将 Starlette 升级到0.15.0
,支持 AnyIO,并且您的代码有更高几率出现破坏性变更。 - 最后到 FastAPI
0.70.0
,仅将 Starlette 升级到最新版本0.16.0
,并包含额外的错误修复。
这样,如果其中一个版本对您的代码造成了破坏性变更,您仍然可以从之前的升级中受益。✨
破坏性变更 - 升级¶
同时升级可选依赖的范围:
"jinja2 >=2.11.2,<4.0.0"
"itsdangerous >=1.1.0,<3.0.0"
0.69.0¶
破坏性变更 - 升级¶
此版本添加了对 Trio 的支持。✨
它将 Starlette 版本升级到 0.15.0
,现在基于 AnyIO,并且 FastAPI 中的内部异步组件现在也基于 AnyIO,使其兼容 asyncio 和 Trio。
您可以阅读关于使用 Hypercorn 运行 FastAPI 与 Trio 的文档。
此版本还移除了 graphene
作为 GraphQL 的可选依赖。如果您需要使用 GraphQL,现在推荐的库是 Strawberry。您可以阅读新的 FastAPI 与 GraphQL 文档。
新功能¶
- ✨ 通过 AnyIO 添加对 Trio 的支持,将 Starlette 升级到
0.15.0
。PR #3372 by @graingert。 - ➖ 移除
graphene
作为可选依赖。PR #4007 by @tiangolo。
文档¶
- 📝 添加了使用 Hypercorn 与 Trio 的文档。PR #4014 by @tiangolo。
- ✏ 修复部署指南中的错字。PR #3975 by @ghandic。
- 📝 更新了关于使用方括号的额外安装选项时的 pip install 命令文档,使用引号以兼容 Zsh。PR #3131 by @tomwei7。
- 📝 添加外部文章链接:使用 FastAPI 和 Heroku 将 ML 模型部署为 API。PR #3904 by @kaustubhgupta。
- ✏ 修复
docs/en/docs/contributing.md
中文件路径的错字。PR #3752 by @NinaHwang。 - ✏ 修复
docs/en/docs/advanced/path-operation-advanced-configuration.md
和docs/en/docs/release-notes.md
中的错字。PR #3750 by @saintmalik。 - ✏️ 在安全教程中添加了一个缺失的逗号。PR #3564 by @jalvaradosegura。
- ✏ 修复
docs/en/docs/help-fastapi.md
中的错字。PR #3760 by @jaystone776。 - ✏ 修复
docs/en/docs/tutorial/bigger-applications.md
中关于文件路径的错字。PR #3285 by @HolyDorus。 - ✏ 重新措辞以澄清
docs/en/docs/tutorial/testing.md
中的测试客户端。PR #3382 by @Bharat123rox。 - 📝 修复不正确的代码高亮。PR #3325 by @paxcodes。
- 📝 添加外部文章链接:如何将 FastAPI 应用部署到 Heroku。PR #3241 by @Jarmos-san。
- ✏ 修复
docs/en/docs/advanced/templates.md
中的错字(误译)。PR #3211 by @oerpli。 - 📝 移除
docs/en/docs/tutorial/request-files.md
中关于 Swagger UI(现在支持)功能的注释。PR #2803 by @gsganden。 - ✏ 修复
docs/tutorial/handling-errors.md
中的错字,重新措辞。PR #2700 by @graue70。
翻译¶
- 🌐 初始化阿塞拜疆语翻译。PR #3941 by @madatbay。
- 🌐 为
docs/fastapi-people.md
添加土耳其语翻译。PR #3848 by @BilalAlpaslan。
内部¶
- 📝 添加支持的 Python 版本徽章。PR #2794 by @hramezani。
- ✏ 修复
docs/docs/deployment/docker.md
的日语文档中的链接。PR #3245 by @utamori。 - 🔧 修正 pytest 设置中的 DeprecationWarning 配置和注释。PR #4008 by @graingert。
- 🔧 切换亮/暗主题按钮图标。PR #3246 by @eddsalkield。
- 🔧 仅在 Python 3.7 及以上版本中进行 lint。PR #4006 by @tiangolo。
- 🔧 为阿塞拜疆语添加 GitHub Action notify-translations 配置。PR #3995 by @tiangolo。
0.68.2¶
此版本没有破坏性变更。🎉
它升级了子依赖的版本范围,以便使用 FastAPI 的应用程序可以轻松升级它们。
很快将发布一个新的 FastAPI 版本,将 Starlette 升级以利用最近的改进,但由于这有更高几率造成破坏性变更,因此将在单独的版本中发布。
新功能¶
- ⬆提高 aiofiles 的支持版本以抑制警告。PR #2899 by @SnkSynthesis。
- ➖ 在 Python >= 3.7 中不需要向后移植。PR #1880 by @FFY00。
- ⬆ 升级所需的 Python 版本到 >= 3.6.1,Pydantic 使用的 typing.Deque 需要。PR #2733 by @hukkin。
- ⬆️ 将 Uvicorn 最大范围提升到 0.15.0。PR #3345 by @Kludex。
文档¶
- 📝 更新 GraphQL 文档,推荐 Strawberry。PR #3981 by @tiangolo。
- 📝 重写并扩展部署指南:概念、Uvicorn、Gunicorn、Docker、容器、Kubernetes。PR #3974 by @tiangolo。
- 📝 升级 HTTPS 指南,增加更多解释和图表。PR #3950 by @tiangolo。
翻译¶
- 🌐 为
docs/features.md
添加土耳其语翻译。PR #1950 by @ycd。 - 🌐 为
docs/benchmarks.md
添加土耳其语翻译。PR #2729 by @Telomeraz。 - 🌐 为
docs/index.md
添加土耳其语翻译。PR #1908 by @ycd。 - 🌐 为
docs/tutorial/body.md
添加法语翻译。PR #3671 by @Smlep。 - 🌐 为
deployment/docker.md
添加法语翻译。PR #3694 by @rjNemo。 - 🌐 为
docs/tutorial/path-params.md
添加葡萄牙语翻译。PR #3664 by @FelipeSilva93。 - 🌐 为
docs/deployment/https.md
添加葡萄牙语翻译。PR #3754 by @lsglucas。 - 🌐 为
docs/features.md
添加德语翻译。PR #3699 by @mawassk。
内部¶
- ✨ 更新 GitHub Action: notify-translations,以避免竞态条件。PR #3989 by @tiangolo。
- ⬆️ 升级开发依赖
autoflake
,支持多行导入。PR #3988 by @tiangolo。 - ⬆️ 增加测试和文档的依赖范围:pytest-cov、pytest-asyncio、black、httpx、sqlalchemy、databases、mkdocs-markdownextradata-plugin。PR #3987 by @tiangolo。
- 👥 更新 FastAPI 人员列表。PR #3986 by @github-actions[bot]。
- 💚 修复 README 和主页中的徽章。PR #3979 by @ghandic。
- ⬆ 升级内部测试依赖:mypy 到 0.910 版本,添加新需要的类型包。PR #3350 by @ArcLightSlavik。
- ✨ 添加 Deepset 赞助。PR #3976 by @tiangolo。
- 🎨 调整 shell 动画的 CSS 样式。PR #3888 by @tiangolo。
- 🔧 添加新赞助商 Calmcode.io。PR #3777 by @tiangolo。
0.68.1¶
翻译¶
- 🌐 添加
docs/fastapi-people.md
的葡萄牙语翻译。PR #3461 by @ComicShrimp。 - 🌐 为
docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
添加中文翻译。PR #3492 by @jaystone776。 - 🔧 为德语和印度尼西亚语添加新的翻译跟踪问题。PR #3718 by @tiangolo。
- 🌐 为
docs/tutorial/dependencies/sub-dependencies.md
添加中文翻译。PR #3491 by @jaystone776。 - 🌐 为
docs/advanced/index.md
添加葡萄牙语翻译。PR #3460 by @ComicShrimp。 - 🌐
docs/async.md
的葡萄牙语翻译。PR #1330 by @Serrones。 - 🌐 为
docs/async.md
添加法语翻译。PR #3416 by @Smlep。
内部¶
- ✨ 添加 GitHub Action: Notify Translations。PR #3715 by @tiangolo。
- ✨ 更新 FastAPI 人员和赞助商的计算。PR #3714 by @tiangolo。
- ✨ 启用 MkDocs Material Insiders 的最新功能。PR #3710 by @tiangolo。
- 🔥 移除/清理文档示例中多余的导入。PR #3709 by @tiangolo。
- ➕ 更新文档库,在 Markdown 中包含源代码。PR #3648 by @tiangolo。
- ⬆ 启用 Python 3.9 的测试。PR #2298 by @Kludex。
- 👥 更新 FastAPI 人员列表。PR #3642 by @github-actions[bot]。
0.68.0¶
新功能¶
- ✨ 为每个路径操作添加对 OpenAPI schema 的扩展和更新支持。新文档:FastAPI 路径操作高级配置 - OpenAPI 额外配置。初始 PR #1922 by @edouardlp。
- ✨ 为
FastAPI
类添加额外的 OpenAPI 元数据参数,显示在自动 API 文档 UI 上。新文档:元数据和文档 URL。初始 PR #1812 by @dkreeft。 - ✨ 为所有安全方案类添加
description
参数,例如APIKeyQuery(name="key", description="A very cool API key")
。PR #1757 by @hylkepostma。 - ✨ 更新 OpenAPI 模型,支持递归模型和扩展。PR #3628 by @tiangolo。
- ✨ 从 Starlette 导入并重新导出数据结构,用于请求属性,位于
fastapi.datastructures
。初始 PR #1872 by @jamescurtin。
文档¶
- 📝 更新了关于异步和响应模型的文档,使用了更中性的语言。PR #1869 by @Edward-Knight。
翻译¶
- 🌐 为
docs/python-types.md
添加俄语翻译。PR #3039 by @dukkee。 - 🌐 为
docs/tutorial/dependencies/index.md
添加中文翻译。PR #3489 by @jaystone776。 - 🌐 为
docs/external-links.md
添加俄语翻译。PR #3036 by @dukkee。 - 🌐 为
docs/tutorial/dependencies/global-dependencies.md
添加中文翻译。PR #3493 by @jaystone776。 - 🌐 为
docs/deployment/versions.md
添加葡萄牙语翻译。PR #3618 by @lsglucas。 - 🌐 为
docs/tutorial/security/oauth2-jwt.md
添加日语翻译。PR #3526 by @sattosan。
内部¶
- ✅ 将
docs_src
目录添加到测试覆盖范围并更新测试。初始 PR #1904 by @Kludex。 - 🔧 添加新的 GitHub 模板,包含新 issue 的表单。PR #3612 by @tiangolo。
- 📝 添加 FastAPI 官方 Twitter 到文档:@fastapi。PR #3578 by @tiangolo。
0.67.0¶
新功能¶
- ✨ 添加了对请求主体和
response_model
中dataclasses
的支持。新文档:高级用户指南 - 使用 Dataclasses。PR #3577 by @tiangolo。 - ✨ 支持响应中的
dataclasses
。PR #3576 by @tiangolo,继续了初始 PR #2722 by @amitlissack。
文档¶
- 📝 添加外部链接:如何创建伪证书颁发机构并为 FastAPI 生成 TLS 证书。PR #2839 by @aitoehigie。
- ✏ 修复
body-nested-models.md
中代码高亮行的问题。PR #3463 by @jaystone776。 - ✏ 修复
body-nested-models.md
中的错字。PR #3462 by @jaystone776。 - ✏ 修复
docs/en/docs/tutorial/schema-extra-example.md
中的错字 "might me" -> "might be"。PR #3362 by @dbrakman。 - 📝 添加外部链接:使用 NuxtJS 和 FastAPI 构建简单的电子商务应用。PR #3271 by @ShahriyarR。
- 📝 添加外部链接:使用 Sklearn、FastAPI 和 Docker 部署机器学习模型。PR #2974 by @rodrigo-arenas。
- ✏️ 修复 datastructures 文件中 docstring 的错字。PR #2887 by @Kludex。
- 📝 添加外部链接:在 Ubuntu 上部署 FastAPI 并使用 Caddy 2 Web 服务器提供服务。PR #3572 by @tiangolo。
- 📝 添加外部链接,替换 #1898。PR #3571 by @tiangolo。
内部¶
- 🎨 改进赞助商样式,添加圆角边框。PR #2388 by @Kludex。
- 👷 更新 GitHub Action latest-changes。PR #3574 by @tiangolo。
- 👷 更新 GitHub Action latest-changes。PR #3573 by @tiangolo。
- 👷 重命名并澄清 CI 工作流作业名称。PR #3570 by @tiangolo。
- 👷 更新 GitHub Action latest-changes,第二次尝试 ⚾。PR #3575 by @tiangolo。
- 🔧 在文档中对外部链接进行排序,使最新链接位于顶部。PR #3568 by @tiangolo。
0.66.1¶
翻译¶
- 🌐 添加德语翻译的基本设置。PR #3522 by @0x4Dark。
- 🌐 为
docs/tutorial/security/index.md
添加葡萄牙语翻译。PR #3507 by @oandersonmagalhaes。 - 🌐 为
docs/deployment/index.md
添加葡萄牙语翻译。PR #3337 by @lsglucas。
内部¶
- 🔧 配置严格的 pytest 选项并更新/重构测试。将 pytest 升级到
>=6.2.4,<7.0.0
,将 pytest-cov 升级到>=2.12.0,<3.0.0
。初始 PR #2790 by @graingert。 - ⬆️ 将 python-jose 依赖升级到
>=3.3.0,<4.0.0
以进行测试。PR #3468 by @tiangolo。
0.66.0¶
新功能¶
- ✨ 允许将
response_class
设置为RedirectResponse
或FileResponse
,并从函数返回 URL。新更新的文档位于教程部分自定义响应 - HTML、流、文件、其他,在RedirectResponse和FileResponse中。PR #3457 by @tiangolo。
修复¶
- 🐛 修复
jsonable_encoder
中字典的 include/exclude 问题。PR #2016 by @Rubikoid。 - 🐛 支持生成输出 OpenAPI 中的自定义 OpenAPI / JSON Schema 字段。PR #1429 by @jmagnusson。
翻译¶
- 🌐 为
tutorial/query-params.md
添加西班牙语翻译。PR #2243 by @mariacamilagl。 - 🌐 为
advanced/response-directly.md
添加西班牙语翻译。PR #1253 by @jfunez。 - 🌐 为
advanced/additional-status-codes.md
添加西班牙语翻译。PR #1252 by @jfunez。 - 🌐 为
advanced/path-operation-advanced-configuration.md
添加西班牙语翻译。PR #1251 by @jfunez。
0.65.3¶
修复¶
- ♻ 在未提供 Content-Type 标头时,假定请求主体包含 JSON。这修复了 0.65.2 版本中 PR #2118 引入的破坏性变更。它应该允许升级 FastAPI 应用程序,即使客户端发送 JSON 数据时未设置
Content-Type
标头。并且仍然有 CSRF 保护。PR #3456 by @tiangolo。
翻译¶
- 🌐 初始化印度尼西亚语翻译。PR #3014 by @pace-noge。
- 🌐 添加教程 - 路径参数的西班牙语翻译。PR #2219 by @mariacamilagl。
- 🌐 添加教程 - 第一步的西班牙语翻译。PR #2208 by @mariacamilagl。
- 🌐 教程 - 主体 - 字段的葡萄牙语翻译。PR #3420 by @ComicShrimp。
- 🌐 为教程 - 请求 - 表单 - 和 - 文件添加中文翻译。PR #3249 by @jaystone776。
- 🌐 为教程 - 错误处理添加中文翻译。PR #3299 by @jaystone776。
- 🌐 为教程 - 表单 - 数据添加中文翻译。PR #3248 by @jaystone776。
- 🌐 为教程 - 主体 - 更新添加中文翻译。PR #3237 by @jaystone776。
- 🌐 为 FastAPI 人员添加中文翻译。PR #3112 by @hareru。
- 🌐 为项目生成添加法语翻译。PR #3197 by @Smlep。
- 🌐 为 Python 类型介绍添加法语翻译。PR #3185 by @Smlep。
- 🌐 为外部链接添加法语翻译。PR #3103 by @Smlep。
- 🌐 为替代方案、灵感和比较添加法语翻译。PR #3020 by @rjNemo。
- 🌐 修复教程 - Python 类型介绍中中文翻译的代码片段不匹配问题。PR #2573 by @BoYanZh。
- 🌐 为开发贡献添加葡萄牙语翻译。PR #1364 by @Serrones。
- 🌐 为教程 - 请求 - 文件添加中文翻译。PR #3244 by @jaystone776。
内部¶
- 👥 更新 FastAPI 人员列表。PR #3450 by @github-actions[bot]。
- 👥 更新 FastAPI 人员列表。PR #3319 by @github-actions[bot]。
- ⬆ 升级文档开发依赖
typer-cli
到 >=0.0.12 以解决冲突。PR #3429 by @tiangolo。
0.65.2¶
安全修复¶
- 🔒 在假定 JSON 之前检查 Content-Type 请求头。初始 PR #2118 by @patrickkwang。
此更改修复了当浏览器使用 cookie 在带有 JSON 负载的路径操作中进行身份验证时存在的 CSRF 安全漏洞。
在低于 0.65.2
的版本中,即使发送的 content-type
标头未设置为 application/json
或兼容的 JSON 媒体类型(例如 application/geo+json
),FastAPI 也会尝试将请求负载读取为 JSON。
因此,一个 text/plain
内容类型但包含 JSON 数据的请求将被接受,并且 JSON 数据将被提取。
但是 text/plain
内容类型的请求被豁免 CORS 预检,因为它们被认为是 简单请求。因此,浏览器会立即执行它们,包括 cookie,并且文本内容可能是 JSON 字符串,FastAPI 应用程序将解析并接受它。
有关更多详细信息,请参阅 CVE-2021-32677。
感谢 Dima Boger 的安全报告!🙇🔒
内部¶
- 🔧 更新赞助商徽章,课程包。PR #3340 by @tiangolo。
- 🔧 添加新的黄金赞助商 Jina 🎉。PR #3291 by @tiangolo。
- 🔧 为 FastAPI 课程包添加新的横幅赞助商徽章。PR #3288 by @tiangolo。
- 👷 升级 Issue Manager GitHub Action。PR #3236 by @tiangolo。
0.65.1¶
安全修复¶
- 📌 升级 pydantic 固定版本,以处理安全漏洞 CVE-2021-29510。PR #3213 by @tiangolo。
0.65.0¶
破坏性变更 - 升级¶
- ⬆️ 将 Starlette 升级到
0.14.2
,包括从 Starlette 迁移过来的内部UJSONResponse
。这包括 Starlette 的多项错误修复和功能。PR #2335 by @hanneskuettner。
翻译¶
- 🌐 初始化新语言波兰语翻译。PR #3170 by @neternefer。
内部¶
- 👷 添加 GitHub Action 缓存以加速 CI 安装。PR #3204 by @tiangolo。
- ⬆️ 升级 setup-python GitHub Action 到 v2。PR #3203 by @tiangolo。
- 🐛 修复文档脚本,以生成带有
overrides
样板的新翻译语言。PR #3202 by @tiangolo。 - ✨ 添加新的 Deta 横幅徽章,包含新的赞助等级 🙇。PR #3194 by @tiangolo。
- 👥 更新 FastAPI 人员列表。PR #3189 by @github-actions[bot]。
- 🔊 更新 FastAPI 人员列表以允许更好的调试。PR #3188 by @tiangolo。
0.64.0¶
新功能¶
- ✨ 添加了在请求主体和路径、查询、cookie 和头部参数中添加多个
examples
的支持。新文档:声明请求示例数据。初始 PR #1267 by @austinorr。
修复¶
- 📌 锁定 SQLAlchemy 测试范围,因为它不使用 SemVer。PR #3001 by @tiangolo。
- 🎨 为 mypy 添加新必需的类型注释。PR #2882 by @tiangolo。
- 🎨 移除内部“type: ignore”,现在不再需要。PR #2424 by @AsakuraMizu。
文档¶
- 📝 添加俄语文章链接“FastAPI: 熟悉框架”。PR #2564 by @trkohler。
- 📝 添加外部博客文章链接“使用 Auth0 验证您的 FastAPI 应用程序”。PR #2172 by @dompatmore。
- 📝 修复文章链接损坏:使用 FastAPI 和 Streamlit 在 Python 中提供机器学习模型。PR #2557 by @davidefiocco。
- 📝 添加 FastAPI Medium 文章:将 dockerized FastAPI 应用程序部署到 AWS。PR #2515 by @vjanz。
- ✏ 修复教程 - 错误处理中的错字。PR #2486 by @johnthagen。
- ✏ 修复安全 OAuth2 范围中的错字。PR #2407 by @jugmac00。
- ✏ 修复/澄清 SQL(关系)数据库文档中的错字。PR #2393 by @kangni。
- 📝 添加外部链接:“FastAPI for Flask Users”。PR #2280 by @amitness。
翻译¶
- 🌐 修复教程 - 查询参数的中文翻译,移除过时内容。PR #3051 by @louis70109。
- 🌐 为教程 - 后台任务添加法语翻译。PR #3098 by @Smlep。
- 🌐 修复 docs/docs/index.md 的韩语翻译。PR #3159 by @SueNaEunYang。
- 🌐 为教程 - 查询参数添加韩语翻译。PR #2390 by @hard-coders。
- 🌐 为 FastAPI 人员添加法语翻译。PR #2232 by @JulianMaurin。
- 🌐 为教程 - 路径参数添加韩语翻译。PR #2355 by @hard-coders。
- 🌐 为功能添加法语翻译。PR #2157 by @Jefidev。
- 👥 更新 FastAPI 人员列表。PR #3031 by @github-actions[bot]。
- 🌐 为教程 - 调试添加中文翻译。PR #2737 by @blt232018。
- 🌐 为教程 - 安全 - 带密码的 OAuth2(和哈希)、带 JWT 令牌的 Bearer 添加中文翻译。PR #2642 by @waynerv。
- 🌐 为教程 - 头部参数添加韩语翻译。PR #2589 by @mode9。
- 🌐 为教程 - 元数据和文档 URL 添加中文翻译。PR #2559 by @blt232018。
- 🌐 为教程 - 第一步添加韩语翻译。PR #2323 by @hard-coders。
- 🌐 为教程 - CORS(跨域资源共享)添加中文翻译。PR #2540 by @blt232018。
- 🌐 为教程 - 中间件添加中文翻译。PR #2334 by @lpdswing。
- 🌐 为教程 - 介绍添加韩语翻译。PR #2317 by @hard-coders。
- 🌐 为教程 - 大型应用 - 多个文件添加中文翻译。PR #2453 by @waynerv。
- 🌐 为教程 - 安全 - 安全介绍添加中文翻译。PR #2443 by @waynerv。
- 🌐 为教程 - 头部参数添加中文翻译。PR #2412 by @maoyibo。
- 🌐 为教程 - 额外数据类型添加中文翻译。PR #2410 by @maoyibo。
- 🌐 为部署 - Docker 添加日语翻译。PR #2312 by @tokusumi。
- 🌐 为部署 - 版本添加日语翻译。PR #2310 by @tokusumi。
- 🌐 为教程 - Cookie 参数添加中文翻译。PR #2261 by @alicrazy1947。
- 🌐 为教程 - 静态文件添加日语翻译。PR #2260 by @tokusumi。
- 🌐 为教程 - 测试添加日语翻译。PR #2259 by @tokusumi。
- 🌐 为教程 - 调试添加日语翻译。PR #2256 by @tokusumi。
- 🌐 为教程 - 中间件添加日语翻译。PR #2255 by @tokusumi。
- 🌐 为并发和 async / await 添加日语翻译。PR #2058 by @tokusumi。
- 🌐 为教程 - 安全 - 带密码和 Bearer 的简单 OAuth2 添加中文翻译。PR #2514 by @waynerv。
- 🌐 为部署 - Deta 添加日语翻译。PR #2314 by @tokusumi。
- 🌐 为教程 - 安全 - 获取当前用户添加中文翻译。PR #2474 by @waynerv。
- 🌐 为部署 - 手动添加日语翻译。PR #2313 by @tokusumi。
- 🌐 为部署 - 介绍添加日语翻译。PR #2309 by @tokusumi。
- 🌐 为 FastAPI 人员添加日语翻译。PR #2254 by @tokusumi。
- 🌐 为高级 - 路径操作高级配置添加日语翻译。PR #2124 by @Attsun1031。
- 🌐 为外部链接添加日语翻译。PR #2070 by @tokusumi。
- 🌐 为教程 - 主体 - 更新添加日语翻译。PR #1956 by @SwftAlpc。
- 🌐 为教程 - 表单数据添加日语翻译。PR #1943 by @SwftAlpc。
- 🌐 为教程 - Cookie 参数添加日语翻译。PR #1933 by @SwftAlpc。
内部¶
- 🔧 更新顶部横幅,指向通讯。PR #3003 by @tiangolo。
- 🔧 禁用赞助商 WeTransfer。PR #3002 by @tiangolo。
- 👥 更新 FastAPI 人员列表。PR #2880 by @github-actions[bot]。
- 👥 更新 FastAPI 人员列表。PR #2739 by @github-actions[bot]。
- 🔧 添加新的黄金赞助商 Jina 🎉。PR #3291 by @tiangolo。
- 🔧 添加新的黄金赞助商 vim.so 🎉。PR #2669 by @tiangolo。
- 🔧 添加 FastAPI 用户调查横幅。PR #2623 by @tiangolo。
- 🔧 添加新的青铜赞助商 🥉🎉。PR #2622 by @tiangolo。
- 📝 更新社交链接:添加 Discord,修复 GitHub。PR #2621 by @tiangolo。
- 🔧 更新 FastAPI 人员 GitHub 赞助商顺序。PR #2620,由 @tiangolo 提交。
- 🔧 更新 InvestSuite 赞助商数据。PR #2608,由 @tiangolo 提交。
- 👥 更新 FastAPI 人员。PR #2590,由 @github-actions[bot] 提交。
0.63.0¶
特性¶
重大变更¶
- ⬆️ 安装
fastapi[all]
时升级 Uvicorn 至包含uvloop
的最新版本,新范围为uvicorn[standard] >=0.12.0,<0.14.0
。PR #2548,由 @tiangolo 提交。
修复¶
- 🐛 PR #2547(见上文)也修复了
mypy
的一些误报错误,涉及callbacks
参数和使用OAuth2
类时。
文档¶
- 📝 更新 Uvicorn 安装说明以使用 uvicorn[standard](包含 uvloop)。PR #2543,由 @tiangolo 提交。
- 📝 更新 Deta 教程的标题。PR #2466,由 @tiangolo 提交。
- 👥 更新 FastAPI 人员。PR #2454,由 @github-actions[bot] 提交。
翻译¶
- 🌐 添加文档语言选择器小部件。PR #2542,由 @tiangolo 提交。
- 🌐 添加“教程 - 响应状态码”的中文翻译。PR #2442,由 @waynerv 提交。
- 🌐 启动阿尔巴尼亚语文档翻译。PR #2516,由 @vjanz 提交。
- 🌐 添加“教程 - 额外模型”的中文翻译。PR #2416,由 @waynerv 提交。
- 🌐 添加“教程 - 响应模型”的中文翻译。PR #2414,由 @waynerv 提交。
- 🌐 添加“教程 - 模式额外示例”的中文翻译。PR #2411,由 @maoyibo 提交。
- 🌐 添加“主页”的韩语翻译。PR #2192,由 @hard-coders 提交。
- 🌐 添加“高级用户指南 - 附加状态码”的日语翻译。PR #2145,由 @Attsun1031 提交。
内部¶
- 🐛 修复文档翻译覆盖目录。PR #2541,由 @tiangolo 提交。
- ➖ 移除 Typer 作为文档构建依赖(已由 typer-cli 覆盖),以修复 pip 解析器冲突。PR #2539,由 @tiangolo 提交。
- ✨ 添加新闻通讯:FastAPI 和朋友们。PR #2509,由 @tiangolo 提交。
- ✨ 添加新的黄金赞助商:InvestSuite 🎉。PR #2508,由 @tiangolo 提交。
- 🔧 添加问题模板配置。PR #2476,由 @tiangolo 提交。
0.62.0¶
特性¶
到目前为止,对于多个选项,将它们应用于一组 路径操作(path operations) 的唯一方法是在 include_router
中进行。这虽然有效,但 app.include_router()
或 router.include_router()
的调用通常在另一个文件中完成。
这意味着,例如,要将身份验证应用于路由器中的所有 路径操作(path operations),最终会在不同的文件中完成,而不是将相关的逻辑放在一起。
在 include_router
中设置选项在某些情况下仍然有意义,例如,当在应用程序中包含第三方路由器时,覆盖或增加其配置。但在作为大型应用程序一部分的路由器中,在创建 APIRouter
时添加这些设置可能更有意义。
在 FastAPI
中
这允许设置(主要是新的)参数(除了已有的参数)
default_response_class
: 已更新以处理APIRouter
和include_router
中的默认值。dependencies
: 用于包含 ✨ 顶层依赖 ✨,适用于整个应用程序。例如,添加全局身份验证。callbacks
: 适用于所有 路径操作(path operations) 的 OpenAPI 回调。deprecated
: 将所有 路径操作(path operations) 标记为已弃用。🤷include_in_schema
: 允许将所有 路径操作(path operations) 从 OpenAPI 模式中排除。responses
: 适用于所有 路径操作(path operations) 的 OpenAPI 响应。
例如:
from fastapi import FastAPI, Depends
async def some_dependency():
return
app = FastAPI(dependencies=[Depends(some_dependency)])
在 APIRouter
中
这允许设置(主要是新的)参数(除了已有的参数)
default_response_class
: 已更新以处理APIRouter
和include_router
中的默认值。例如,在创建回调时不需要显式设置它。dependencies
: 用于包含 ✨ 路由器级别依赖 ✨,适用于路由器中的所有 路径操作(path operations)。到目前为止,这只能通过include_router
实现。callbacks
: 适用于此路由器中所有 路径操作(path operations) 的 OpenAPI 回调。deprecated
: 将路由器中的所有 路径操作(path operations) 标记为已弃用。include_in_schema
: 允许将路由器中的所有 路径操作(path operations) 从 OpenAPI 模式中排除。responses
: 适用于路由器中所有 路径操作(path operations) 的 OpenAPI 响应。prefix
: 为路由器设置路径前缀。到目前为止,这只能在调用include_router
时实现。tags
: 适用于此路由器中所有 路径操作(path operations) 的 OpenAPI 标签。
例如:
from fastapi import APIRouter, Depends
async def some_dependency():
return
router = APIRouter(prefix="/users", dependencies=[Depends(some_dependency)])
在 include_router
中
这些设置中的大多数现在都在 APIRouter
中受支持,它通常更接近相关代码,因此建议尽可能使用 APIRouter
。
但 include_router
仍然有用,例如,在包含第三方路由器或在多个项目之间共享的通用路由器时,添加选项(如 dependencies
、prefix
和 tags
)。
此 PR 允许设置(主要是新的)参数(除了已有的参数)
default_response_class
: 已更新以处理APIRouter
和FastAPI
中的默认值。deprecated
: 在 OpenAPI 中将路由器中的所有 路径操作(path operations) 标记为已弃用。include_in_schema
: 允许禁用所有 路径操作(path operations) 在 OpenAPI 模式中显示。callbacks
: 适用于此路由器中所有 路径操作(path operations) 的 OpenAPI 回调。
注意:所有之前的参数仍然存在,因此仍然可以在 include_router
中声明 dependencies
。
破坏性变更¶
- PR #2434 包含多项改进,这些改进不应影响正常用例,但可能会在高级场景中产生影响
- 如果您正在测试生成的 OpenAPI(您不应该这样做,FastAPI 已经为您进行了大量测试):
include_router
和 路径操作(path operations) 中tags
的顺序已更新以保持一致性,但这只是一个简单的顺序更改。 - 如果您有高级自定义逻辑来访问每个路由的
route.response_class
,或router.default_response_class
,或app.default_response_class
:APIRoute
中response_class
的默认值以及APIRouter
和FastAPI
中default_response_class
的默认值现在是一个DefaultPlaceholder
,内部用于处理和解决默认值和覆盖。DefaultPlaceholder
中的实际响应类可在route.response_class.value
处获取。
- 如果您正在测试生成的 OpenAPI(您不应该这样做,FastAPI 已经为您进行了大量测试):
文档¶
-
PR #2434(上文)包含新的或更新的文档
-
📝 将 FastAPI 监控博客文章添加到外部链接。PR #2324 由 @louisguitton 提交。
- ✏️ 修复 Deta 教程中的拼写错误。PR #2320 由 @tiangolo 提交。
- ✨ 添加 Discord 聊天。PR #2322 由 @tiangolo 提交。
- 📝 修复赞助商的图片链接。PR #2304 由 @tiangolo 提交。
翻译¶
- 🌐 为高级 - 自定义响应 添加日语翻译。PR #2193 由 @Attsun1031 提交。
- 🌐 为基准测试 添加中文翻译。PR #2119 由 @spaceack 提交。
- 🌐 为教程 - 请求体 - 嵌套模型 添加中文翻译。PR #1609 由 @waynerv 提交。
- 🌐 为高级 - 自定义响应 添加中文翻译。PR #1459 由 @RunningIkkyu 提交。
- 🌐 为高级 - 直接返回响应 添加中文翻译。PR #1452 由 @RunningIkkyu 提交。
- 🌐 为高级 - 附加状态码 添加中文翻译。PR #1451 由 @RunningIkkyu 提交。
- 🌐 为高级 - 路径操作高级配置 添加中文翻译。PR #1447 由 @RunningIkkyu 提交。
- 🌐 为高级用户指南 - 简介 添加中文翻译。PR #1445 由 @RunningIkkyu 提交。
内部¶
- 🔧 更新赞助商部分中的 TestDriven 课程链接。PR #2435 由 @tiangolo 提交。
- 🍱 更新赞助商标志。PR #2418 由 @tiangolo 提交。
- 💚 修复禁用在 Fork 中安装 Material for MkDocs Insiders,第一次尝试 ⚾。PR #2340 由 @tiangolo 提交。
- 🐛 修复禁用在 Fork 中安装 Material for MkDocs Insiders。PR #2339 由 @tiangolo 提交。
- ✨ 添加银牌赞助商 WeTransfer。PR #2338 由 @tiangolo 提交。
- ✨ 为文档设置并启用 Material for MkDocs Insiders。PR #2325 由 @tiangolo 提交。
0.61.2¶
修复¶
- 📌 放宽 Swagger UI 版本限制。PR #2089 由 @jmriebold 提交。
- 🐛 修复从 exception_handlers 覆盖自定义 HTTPException 和 RequestValidationError 的错误。PR #1924 由 @uriyyo 提交。
- ✏️ 修复依赖项实用程序中的拼写错误并清理未使用的变量。PR #1912 由 @Kludex 提交。
文档¶
- ✏️ 修复教程 - 路径参数中的拼写错误。PR #2231 由 @mariacamilagl 提交。
- ✏ 修复文档中的风格错误。PR #2206 由 @ddobrinskiy 提交。
- ✏ 修复文档中的大小写拼写错误。PR #2204 由 @imba-tjd 提交。
- ✏ 修复文档中的拼写错误。PR #2179 由 @ammarasmro 提交。
- 📝 更新/修复文档中的链接以使用 HTTPS。PR #2165 由 @imba-tjd 提交。
- ✏ 修复文档中的拼写错误并重新措辞。PR #2159 由 @nukopy 提交。
- 📝 修复教程 - 用户指南 - 路径参数示例中的代码一致性。PR #2158 由 @nukopy 提交。
- 📝 修复重命名参数
content_type
的拼写错误。PR #2135 由 @TeoZosa 提交。 - ✏ 修复文档中的小拼写错误。PR #2122 由 @TeoZosa 提交。
- ✏ 修复文档和源示例中的拼写错误。PR #2102 由 @AdrianDeAnda 提交。
- ✏ 修复文档中错误的 Celery URL。PR #2100 由 @CircleOnCircles 提交。
- 📝 简化 Python 类型简介,所有当前支持的 Python 版本都包含类型提示 🎉。PR #2085 由 @ninjaaron 提交。
- 📝 修复教程 - 请求体 - 嵌套模型 3 中带集合的示例代码。PR #2054 由 @hitrust 提交。
- 📝 修复教程 - 请求体 - 嵌套模型 2 中带集合的示例代码。PR #2053 由 @hitrust 提交。
- 📝 修复教程 - 请求体 - 嵌套模型 中带集合的示例代码。PR #2052 由 @hitrust 提交。
- ✏ 修复基准测试中的拼写错误。PR #1995 由 @AlejoAsd 提交。
- 📝 在 CORS 教程中添加关于
allow_origins
与["*"]
和allow_credentials
的说明。PR #1895 由 @dsmurrell 提交。 - 📝 添加部署到 Deta,第一个金牌赞助商 🎉。PR #2303 由 @tiangolo 提交。
- 👥 更新 FastAPI 人员。PR #2282 由 @github-actions[bot] 提交。
- ✏️ 修复教程 - 查询参数中的大写错误。PR #2245 由 @mariacamilagl 提交。
- 📝 将文章添加到外部链接。PR #2247 由 @tiangolo 提交。
- ✏ 修复西班牙语教程索引中的拼写错误。PR #2020 由 @aviloncho 提交。
翻译¶
- 🌐 为高级教程 - 直接响应 添加日语翻译。PR #2191 由 @Attsun1031 提交。
- 📝 为教程 - 安全 - 第一步 添加日语翻译。PR #2153 由 @komtaki 提交。
- 🌐 为教程 - 查询参数和字符串验证 添加日语翻译。PR #1901 由 @SwftAlpc 提交。
- 🌐 为外部链接 添加葡萄牙语翻译。PR #1443 由 @Serrones 提交。
- 🌐 为教程 - CORS 添加日语翻译。PR #2125 由 @tokusumi 提交。
- 🌐 为贡献 添加日语翻译。PR #2067 由 @komtaki 提交。
- 🌐 为项目生成 添加日语翻译。PR #2050 由 @tokusumi 提交。
- 🌐 为替代方案 添加日语翻译。PR #2043 由 @Attsun1031 提交。
- 🌐 为历史、设计和未来 添加日语翻译。PR #2002 由 @komtaki 提交。
- 🌐 为基准测试 添加日语翻译。PR #1992 由 @komtaki 提交。
- 🌐 为教程 - 头部参数 添加日语翻译。PR #1935 由 @SwftAlpc 提交。
- 🌐 为教程 - 第一步 添加葡萄牙语翻译。PR #1861 由 @jessicapaz 提交。
- 🌐 为 Python 类型 添加葡萄牙语翻译。PR #1796 由 @izaguerreiro 提交。
- 🌐 为帮助 FastAPI 添加日语翻译。PR #1692 由 @tokusumi 提交。
- 🌐 为教程 - 请求体 添加日语翻译。PR #1683 由 @tokusumi 提交。
- 🌐 为教程 - 查询参数 添加日语翻译。PR #1674 由 @tokusumi 提交。
- 🌐 为 tutorial/path-params.md 添加日语翻译。PR #1671 由 @tokusumi 提交。
- 🌐 为 tutorial/first-steps.md 添加日语翻译。PR #1658 由 @tokusumi 提交。
- 🌐 为 tutorial/index.md 添加日语翻译。PR #1656 由 @tokusumi 提交。
- 🌐 添加项目生成的葡萄牙语翻译。PR #1602 由 @Serrones 提交。
- 🌐 为特性 添加日语翻译。PR #1625 由 @tokusumi 提交。
- 🌐 初始化新的韩语翻译。PR #2018 由 @hard-coders 提交。
- 🌐 添加部署的葡萄牙语翻译。PR #1374 由 @Serrones 提交。
内部¶
- 🔥 升级 Docs Previews GitHub Action 后进行清理。PR #2248 由 @tiangolo 提交。
- 🐛 修复 CI 文档预览,解压文档。PR #2246 由 @tiangolo 提交。
- ✨ 为来自 fork 的 PR 添加即时文档部署预览。PR #2244 由 @tiangolo 提交。
- ⚡️ 在子进程中并行构建语言文档以加速 CI。PR #2242 由 @tiangolo 提交。
- 🐛 修复部分翻译的文档生成顺序。PR #2238 由 @tiangolo 提交。
- 👥 更新 FastAPI 人员。PR #2202 由 @github-actions[bot] 提交。
- ♻️ 更新 FastAPI People GitHub Action,将 PR 作为 github-actions 发送。PR #2201 由 @tiangolo 提交。
- 🔧 更新 FastAPI People GitHub Action 配置,每月运行。PR #2199 由 @tiangolo 提交。
- 🐛 修复 FastAPI People GitHub Action Docker 依赖项,第一次尝试 ⚾。PR #2198 由 @tiangolo 提交。
- 🐛 修复 FastAPI People GitHub Action Docker 依赖项。PR #2197 由 @tiangolo 提交。
- 🐛 修复 FastAPI People GitHub Action 在没有更改时的问题。PR #2196 由 @tiangolo 提交。
- 👥 添加新部分 FastAPI 人员。PR #2195 由 @tiangolo 提交。
- ⬆️ 升级 GitHub Action 最新更改。PR #2190 由 @tiangolo 提交。
- ⬆️ 升级 GitHub Action 标记已批准。PR #2189 由 @tiangolo 提交。
- 🔧 更新 GitHub Action 标记已批准,在 12:00 运行。PR #2185 由 @tiangolo 提交。
- 👷 升级 GitHub Action 最新更改。PR #2184 由 @tiangolo 提交。
- 👷 将 GitHub Action 标记已批准设置为每日运行,而不是每分钟。PR #2163 由 @tiangolo 提交。
- 🔥 移除 pr-approvals GitHub Action,因为它与 fork 不兼容。使用新的。PR #2162 由 @tiangolo 提交。
- 👷 添加 GitHub Action 最新更改。PR #2160。
- 👷 添加 GitHub Action 标记已批准。PR #2161。
0.61.1¶
修复¶
- 修复使用
jsonable_encoder
直接处理 SQLAlchemy 模型的问题。PR #1987。
文档¶
- 修复 NoSQL 文档中的拼写错误。PR #1980 由 @facundojmaero 提交。
翻译¶
- 添加主页的日语翻译。PR #1571 由 @ryuckel 提交。
- 初始化法语翻译。PR #1975 由 @JulianMaurin-BM 提交。
- 初始化土耳其语翻译。PR #1905 由 @ycd 提交。
内部¶
0.61.0¶
功能¶
- 添加对注入
HTTPConnection
(作为Request
和WebSocket
)的支持。这对于在依赖项中共享应用程序状态非常有用。PR #1827 由 @nsidnev 提交。 - 导出
WebSocketDisconnect
并添加处理 WebSocket 断开连接的示例到文档。PR #1822 由 @rkbeatss 提交。
破坏性变更¶
- 要求 Pydantic >
1.0.0
。- 移除对已弃用 Pydantic
0.32.2
的支持。这提高了可维护性并允许新功能。 - 在
FastAPI
和APIRouter
中- 移除 路径操作装饰器(path operation decorators) 相关/已弃用的参数
response_model_skip_defaults
(请改用response_model_exclude_unset
)。 - 将 路径操作装饰器(path operation decorators) 参数
response_model_exclude
的默认值从set()
更改为None
(与 Pydantic 中一致)。
- 移除 路径操作装饰器(path operation decorators) 相关/已弃用的参数
- 在
encoders.jsonable_encoder
中- 移除已弃用的
skip_defaults
,请改用exclude_unset
。 - 将
exclude
的默认值从set()
更改为None
(与 Pydantic 中一致)。
- 移除已弃用的
- PR #1862。
- 移除对已弃用 Pydantic
- 在
encoders.jsonable_encoder
中移除参数sqlalchemy_safe
。- 它是一个早期的 hack,允许返回 SQLAlchemy 模型,但它从未被记录,推荐的方法是使用 Pydantic 的
orm_mode
,如教程中所述:SQL(关系)数据库。 - PR #1864。
- 它是一个早期的 hack,允许返回 SQLAlchemy 模型,但它从未被记录,推荐的方法是使用 Pydantic 的
文档¶
- 添加 TestDriven.io 课程链接:使用 FastAPI 和 Docker 进行测试驱动开发。PR #1860。
- 修复文档中处理错误示例中的空日志消息。PR #1815 由 @manlix 提交。
- 重新措辞文本以减少歧义,同时不区分性别。PR #1824 由 @Mause 提交。
内部¶
- 添加 Flake8 linting。原始 PR #1774 由 @MashhadiNima 提交。
- 禁用 Gitter 机器人,因为它目前已损坏,并且 Gitter 的响应未显示问题。PR #1853。
0.60.2¶
- 修复查询参数文档中的拼写错误。PR #1832 由 @ycd 提交。
- 添加关于异步测试的文档。PR #1619 由 @empicano 提交。
- 在使用表单数据(
Form
、File
)但未安装python-multipart
时引发异常。- 到目前为止,应用程序会运行,并且只在接收到带表单数据的请求时才引发异常。新的行为,即提前引发异常,将防止部署具有损坏依赖项的应用程序。
- 它还检测是否安装了正确的包
python-multipart
而不是不正确的multipart
(两者都可以作为multipart
导入)。 - PR #1851 基于原始 PR #1627 由 @chrisngyn、@YKo20010、@kx-chen 提交。
- 重新启用 Gitter 发布机器人。PR #1831。
- 从主 SQL 教程中添加异步 SQL 数据库教程的链接。PR #1813 由 @short2strings 提交。
- 修复关于代理后面的教程中的拼写错误。PR #1807 由 @toidi 提交。
- 修复葡萄牙语文档中的拼写错误。PR #1795 由 @izaguerreiro 提交。
- 添加乌克兰语翻译设置。PR #1830。
- 添加外部链接 使用 FastAPI 构建和托管快速数据科学应用程序。PR #1786 由 @Kludex 提交。
- 修复继承自其他模型且带有自定义
json_encoders
的 Pydantic 模型编码问题。PR #1769 由 @henrybetts 提交。 - 简化和改进
jsonable_encoder
。PR #1754 由 @MashhadiNima 提交。 - 简化多处内部代码语法。PR #1753 由 @uriyyo 提交。
- 改进内部类型提示,声明
Optional
参数。PR #1731 由 @MashhadiNima 提交。 - 添加外部链接 在 Azure 应用服务上部署 FastAPI 到文档。PR #1726 由 @windson 提交。
- 添加 Starlette 文档中关于 WebSocket 测试的链接。PR #1717 由 @hellocoldworld 提交。
- 重构生成依赖项,合并 for 循环。PR #1714 由 @Bloodielie 提交。
- 更新 Jinja 模板示例以包含 HTML 媒体类型。PR #1690 由 @frafra 提交。
- 修复安全文档中的拼写错误。PR #1678 由 @nilslindemann 提交。
- 修复依赖项文档中的拼写错误。PR #1675 由 @nilslindemann 提交。
- 修复
FastAPI
中**extra
参数的类型注解。PR #1659 由 @bharel 提交。 - 更新 MkDocs Material 以修复在深色模式浏览器中的文档显示问题。PR #1789 由 @adriencaccia 提交。
- 从每次提交中删除文档预览评论。PR #1826。
- 更新 Gitter 通知机器人的 GitHub 上下文提取。PR #1766。
0.60.1¶
- 添加 GitHub actions 的调试日志以检查 GitHub 隐藏上下文。PR #1764。
- 在线文档使用操作系统偏好主题。PR #1760 由 @adriencaccia 提交。
- 将 Starlette 升级到
0.13.6
版本,以处理在 Windows 中使用静态文件时的漏洞。PR #1759 由 @jamesag26 提交。 - 暂时锁定 Swagger UI 版本,等待 swagger-api/swagger-ui#6249 的修复。PR #1763。
- 更新 GitHub Actions,使用 PR 中的提交进行文档预览,而不是预合并的提交。PR #1761。
- 更新 GitHub Actions,重构 Gitter 机器人。PR #1746。
0.60.0¶
- 添加 GitHub Action 以监视丢失的预览文档并触发预览部署。PR #1740。
- 添加自定义 GitHub Action 以获取带有文档预览的 artifact。PR #1739。
- 添加新的 GitHub Actions 以预览 PR 中的文档。PR #1738。
- 添加 XML 测试覆盖率以支持 GitHub Actions。PR #1737。
- 更新徽章并移除 Travis,因为 GitHub Actions 现在是主要的 CI。PR #1736。
- 添加 GitHub Actions 用于 CI,从 Travis 迁移。PR #1735。
- 添加对带有请求体的 GET 请求的 OpenAPI 模式支持。PR #1626 由 @victorphoenix3 提交。
0.59.0¶
- 修复 OAuth2 utils 的 docstring 中的拼写错误。PR #1621 由 @tomarv2 提交。
- 更新 JWT 文档以使用 Python-jose 代替 PyJWT。初始 PR #1610 由 @asheux 提交。
- 修复/重新启用文档中的搜索栏。PR #1703。
- 当存在
root_path
时,在 OpenAPIservers
中自动生成一个“服务器”,而不是为所有paths
添加前缀。 - 修复外部链接中的拼写错误/链接。PR #1702。
- 更新外部链接的处理方式,使用数据文件并允许翻译标题,而不会因添加新链接而快速过时。PR #https://github.com/tiangolo/fastapi/pull/1701。
- 添加外部链接 使用 FastAPI 和 Streamlit 在 Python 中提供机器学习模型 到文档。PR #1669 由 @davidefiocco 提交。
- 在文档中添加关于 Pydantic Unions 中顺序的说明。PR #1591 由 @kbanc 提交。
- 改进编辑器中测试的支持。PR #1699。
- 锁定依赖项。PR #1697。
- 更新 isort 到 5.x.x 版本。PR #1670 由 @asheux 提交。
0.58.1¶
- 在文档中添加指向 Pydantic 数据类型的链接。PR #1612 由 @tayoogunbiyi 提交。
- 修复
openapi_prefix
警告日志中的链接。PR #1611 由 @bavaria95 提交。 - 修复文档中的错误链接。PR #1603 由 @molto0504 提交。
- 将 Vim 临时文件添加到
.gitignore
,方便使用 Vim 的贡献者。PR #1590 由 @asheux 提交。 - 修复子应用程序文档中的拼写错误。PR #1578 由 @schlpbch 提交。
- 在文档的所有示例中使用
Optional
。原始 PR #1574 由 @chrisngyn、@kx-chen、@YKo20010 提交。更新并合并的 PR #1644。 - 更新
response_model_by_alias
的测试和处理。PR #1642。 - 添加请求体 - 字段的中文翻译。PR #1569 由 @waynerv 提交。
- 更新主页的中文翻译。PR #1564 由 @waynerv 提交。
- 添加请求体 - 多个参数的中文翻译。PR #1532 由 @waynerv 提交。
- 添加路径参数和数值校验的中文翻译。PR #1506 由 @waynerv 提交。
- 添加 GitHub action 以自动标记已批准的 PR(主要用于翻译)。PR #1638。
0.58.0¶
- 深度合并 OpenAPI 响应以保留所有附加元数据。PR #1577。
- 在文档中提及只运行主应用程序事件(而非子应用程序)。PR #1554 由 @amacfie 提交。
- 修复请求体验证错误响应,当请求体变量未嵌入时,不包含该变量。PR #1553 由 @amacfie 提交。
- 修复使用依赖项覆盖时测试 OAuth2 安全作用域的问题。PR #1549 由 @amacfie 提交。
- 修复 JSON Schema 关键字
not
的模型,应将其作为 JSON Schema 而不是列表。PR #1548 由 @v-do 提交。 - 添加对 OpenAPI
servers
的支持。PR #1547 由 @mikaello 提交。
0.57.0¶
- 从“外部链接”中移除损坏的链接。PR #1565 由 @victorphoenix3 提交。
- 更新/修复WebSockets 与依赖项的文档。原始 PR #1540 由 @ChihSeanHsu 提交。
- 添加对
status_code
参数中 Python 的http.HTTPStatus
的支持。PR #1534 由 @retnikt 提交。 - 当使用带有
__root__
的 Pydantic 模型时,在jsonable_encoder
中使用内部值。PR #1524 由 @patrickkwang 提交。 - 更新路径参数的文档。PR #1521 由 @yankeexe 提交。
- 更新第一步、链接和措辞的文档。PR #1518 由 @yankeexe 提交。
- 在 Swagger UI 中启用
showCommonExtensions
以显示额外的验证,例如maxLength
等。PR #1466 由 @TiewKH 提交。 - 使
OAuth2PasswordRequestFormStrict
可以直接从fastapi.security
导入。PR #1462 由 @RichardHoekstra 提交。 - 添加关于默认响应类的文档。PR #1455 由 @TezRomacH 提交。
- 在响应模型中添加关于附加参数
response_model_exclude_defaults
和response_model_exclude_none
的说明。PR #1427 由 @wshayes 提交。 - 添加关于PyCharm Pydantic 插件的说明到文档。PR #1420 由 @koxudaxi 提交。
- 更新并澄清测试函数名称。PR #1395 由 @chenl 提交。
- 修复因间接依赖项直接使用请求而造成的重复头部。PR #1386 由 @obataku 根据 @scottsmith2gmail 的测试提交。
- 将 Starlette 版本升级到
0.13.4
。PR #1361 由 @rushton 提交。 - 改进对无效 JSON 请求的错误处理和反馈。PR #1354 由 @aviramha 提交。
- 添加对在 OpenAPI 中声明标签元数据的支持。新文档可在教程 - 元数据和文档 URL - 标签元数据中查看。PR #1348 由 @thomas-maschler 提交。
- 添加俄语翻译的基本设置。PR #1566。
- 在添加官方社区翻译后,移除过时的中文文章。PR #1510 由 @waynerv 提交。
- 为 路径操作函数(path operation function) 参数助手(如
Query
、Depends
等)添加__repr__
以简化调试。PR #1560 由 @rkbeatss 和 @victorphoenix3 提交。
0.56.1¶
- 从教程中添加高级文档链接。PR #1512 由 @kx-chen 提交。
- 移除内部不必要的 f-strings。PR #1526 由 @kotamatsuoka 提交。
- 添加查询参数和字符串校验的中文翻译。PR #1500 由 @waynerv 提交。
- 添加请求体的中文翻译。PR #1492 由 @waynerv 提交。
- 添加帮助 FastAPI - 获取帮助的中文翻译。PR #1465 由 @waynerv 提交。
- 添加查询参数的中文翻译。PR #1454 由 @waynerv 提交。
- 添加开发 - 贡献的中文翻译。PR #1460 由 @waynerv 提交。
- 添加路径参数的中文翻译。PR #1453 由 @waynerv 提交。
- 添加微软官方项目生成器,用于在项目生成器中使用 FastAPI 和 Azure 认知技能服务 spaCy。PR #1390 由 @kabirkhan 提交。
- 更新Python 类型简介中的文档,包含关于
Optional
的信息。原始 PR #1377 由 @yaegassy 提交。 - 修复带有
yield
的可调用类依赖项的支持。PR #1365 由 @mrosales 提交。 - 修复/移除客户端发送无效负载时出现的不正确错误日志。PR #1351 由 @dbanty 提交。
- 添加第一步的中文翻译。PR #1323 由 @waynerv 提交。
- 修复使用包含 Pydantic 模型的路由器的回调应用生成 OpenAPI 的问题。PR #1322 由 @nsidnev 提交。
- 优化
get_path_param_names()
中的内部正则表达式性能。PR #1243 由 @heckad 提交。 - 从文档中不需要
*,
的函数中移除它。PR #1239 由 @pankaj-giri 提交。 - 开始意大利语翻译。PR #1557 由 @csr 提交。
0.56.0¶
- 添加对 ASGI
root_path
的支持- 在内部使用
root_path
处理挂载的应用程序,这样 OpenAPI 和文档 UI 就能自动工作,无需额外配置和参数。 - 为
FastAPI
应用程序添加新的root_path
参数,以便在可以通过命令行设置(例如,对于 Uvicorn 和 Hypercorn,使用参数--root-path
)的情况下提供它。 - 弃用
openapi_prefix
参数,转而使用新的root_path
参数。 - 为子应用程序 - 挂载添加新的/更新的文档,不再包含
openapi_prefix
(因为它现在自动处理)。 - 为代理后面添加新的/更新的文档,包括如何使用 Traefik 设置本地测试代理并使用
root_path
。 - 更新扩展 OpenAPI 的文档,其中包含传递的新
openapi_prefix
参数(内部从root_path
生成)。 - 原始 PR #1199 由 @iksteen 提交。
- 在内部使用
- 更新新问题模板和文档:帮助 FastAPI - 获取帮助。PR #1531。
- 更新 GitHub action issue-manager。PR #1520。
- 添加新链接
- 英文文章:
- 使用 Python 和 Postgres 实现实时通知 由 Guillermo Cruz 提交。
- 使用 FastAPI 在 Python 中构建微服务 由 Paurakh Sharma Humagain 提交。
- 使用 Python FastAPI 构建简单 API 服务 — 第一部分 由 cuongld2 提交。
- FastAPI + Zeit.co = 🚀 由 Paul Sec 提交。
- 使用 FastAPI 从零开始构建 Web API - 研讨会 由 Sebastián Ramírez (tiangolo) 提交。
- 使用 Python 和 FastAPI 构建安全的 Twilio Webhook 由 Twilio 提交。
- 将 FastAPI 与 Django 结合使用 由 Stavros Korokithakis 提交。
- 介绍 Dispatch 由 Netflix 提交。
- 播客:
- 演讲:
- PR #1467。
- 英文文章:
- 添加Python 类型提示简介的中文翻译。PR #1197 由 @waynerv 提交。
0.55.1¶
- 修复路径参数中具有其自身模式的枚举处理问题。支持 FastAPI 中的 pydantic/pydantic#1432。PR #1463。
0.55.0¶
- 允许枚举在 OpenAPI 中拥有自己的模式。支持 FastAPI 中的 pydantic/pydantic#1432。PR #1461。
- 添加通过 GitHub 赞助进行资助的链接。PR #1425。
- 更新问题模板以解决问题。PR #1344 由 @retnikt 提交。
- 更新关于文档中存储密码的警告。PR #1336 由 @skorokithakis 提交。
- 修复拼写错误。PR #1326 由 @chenl 提交。
- 添加替代方案、灵感和比较的葡萄牙语翻译。PR #1325 由 @Serrones 提交。
- 修复文档中的 2 个拼写错误。PR #1324 由 @waynerv 提交。
- 更新 CORS 文档,修复
max_age=600
的正确默认值。PR #1301 由 @derekbekoe 提交。 - 添加主页的葡萄牙语翻译。PR #1300 由 @Serrones 提交。
- 重新措辞并澄清字段中额外信息的文档。PR #1299 由 @chris-allnutt 提交。
- 确保文档中简短功能旁边的
*
在所有语言中都保持一致(在.
之后)。PR #1424。 - 更新 SQLAlchemy 教程中
get_db
的执行顺序。PR #1293 由 @bcb 提交。 - 修复 Async 文档中的拼写错误。PR #1423。
0.54.2¶
- 添加并发和 async / await的西班牙语翻译。PR #1290 由 @alvaropernas 提交。
- 移除过时的投票链接。PR #1289 由 @donhui 提交。
- 通过将
openapi_url=None
来禁用 OpenAPI,从而禁用文档 UI。文档中新增示例:高级:条件 OpenAPI。PR #1421。 - 添加基准测试的葡萄牙语翻译。PR #1274 由 @Serrones 提交。
- 添加教程 - 用户指南 - 简介的葡萄牙语翻译。PR #1259 由 @marcosmmb 提交。
- 允许在 MkDocs 中使用 Unicode 进行翻译。PR #1419。
- 添加高级用户指南 - 简介的西班牙语翻译。PR #1250 由 @jfunez 提交。
- 添加历史、设计和未来的葡萄牙语翻译。PR #1249 由 @marcosmmb 提交。
- 添加功能的葡萄牙语翻译。PR #1248 由 @marcosmmb 提交。
- 添加教程 - 用户指南 - 简介的西班牙语翻译。PR #1244 由 @MartinEliasQ 提交。
- 添加部署的中文翻译。PR #1203 由 @RunningIkkyu 提交。
- 添加教程 - 用户指南 - 简介的中文翻译。PR #1202 由 @waynerv 提交。
- 添加特性的中文翻译。PR #1192 由 @Dustyposa 提交。
- 添加主页的中文翻译。PR #1191 由 @waynerv 提交。
- 更新项目生成文档。PR #1287。
- 添加Python 类型提示简介的西班牙语翻译。PR #1237 由 @mariacamilagl 提交。
- 添加特性的西班牙语翻译。PR #1220 由 @mariacamilagl 提交。
0.54.1¶
- 更新数据库测试设置。PR #1226。
- 通过在失败测试中显示响应文本来改进测试调试。PR #1222 由 @samuelcolvin 提交。
0.54.0¶
- 修复异步文档中的语法错误。PR #1188 由 @mickeypash 提交。
- 添加对
response_model_exclude_defaults
和response_model_exclude_none
的支持 - 添加关于测试数据库的示例。初始 PR #1144 由 @duganchen 提交。
- 更新开发 - 贡献:翻译的文档,包括关于审查翻译 PR 的说明。#1215。
- 更新 README.md 中的日志样式以兼容 GitHub Markdown。PR #1200 由 #geekgao 提交。
- 将 Python venv
env
添加到.gitignore
。PR #1212 由 @cassiobotaro 提交。 - 开始葡萄牙语翻译。PR #1210 由 @cassiobotaro 提交。
- 更新 Pydantic 的
Settings
文档,使用带有@lru_cache()
的依赖项。PR #1214。 - 添加第一个西班牙语翻译 FastAPI。PR #1201 由 @mariacamilagl 提交。
- 添加关于设置和环境变量的文档。初始 PR 1118 由 @alexmitelman 提交。
0.53.2¶
- 修复依赖项和子依赖项的请求体字段自动嵌入问题。原始 PR #1079 由 @Toad2186 提交。
- 修复 WebSocket 测试中的依赖项覆盖。PR #1122 由 @amitlissack 提交。
- 修复文档脚本,确保语言始终排序。PR #1189。
- 开始中文翻译。PR #1187 由 @RunningIkkyu 提交。
- 添加关于模式额外信息 - 示例的文档。PR #1185。
0.53.1¶
- 修复翻译重构后包含的示例。PR #1182。
- 添加
Field
中example
的文档示例。文档在请求体 - 字段:JSON Schema 额外信息。PR #1106 由 @JohnPaton 提交。 - 修复
response_model
中使用递归模型的问题。PR #1164 由 @voegtlel 提交。 - 添加关于PyCharm 调试的文档。PR #1096 由 @youngquan 提交。
- 修复文档中的拼写错误。PR #1148 由 @PLNech 提交。
- 更新 Windows 开发环境说明。PR #1179。
0.53.0¶
- 更新测试覆盖率徽章。PR #1175。
- 将
orjson
添加到pip install fastapi[all]
。PR #1161 由 @michael0liver 提交。 - 修复
GZipMiddleware
包含的示例。PR #1138 由 @arimbr 提交。 - 修复
OAuth2PasswordRequestFormStrict
的 docstring 中类名称的拼写错误。PR #1126 由 @adg-mh 提交。 - 澄清文档示例中的函数名称。PR #1121 由 @tmsick 提交。
- 添加外部链接 使用 FastAPI 和 aiokafka 的 Apache Kafka 生产者和消费者 到文档。PR #1112 由 @iwpnd 提交。
- 修复在使用
by_alias
或exclude_unset
并返回带有 Pydantic 模型的数据时的序列化问题。PR #1074 由 @juhovh-aiven 提交。 - 添加 Gitter 聊天到文档。PR #1061 由 @aakashnand 提交。
- 更新并简化翻译文档。PR #1171。
- 更新 FastAPI 文档的开发,将地址设置为
127.0.0.1
以改进 Windows 支持。PR #1169 由 @mariacamilagl 提交。 - 添加对文档翻译的支持。新文档:开发 - 贡献:文档:翻译。PR #1168。
- 更新文档中的终端样式,并添加关于 Typer,CLI 的 FastAPI 的说明。PR #1139。
0.52.0¶
- 添加使用
orjson
的新高性能 JSON 响应类。新文档:自定义响应 - HTML、流、文件、其他:ORJSONResponse
。PR #1065。
0.51.0¶
- 重新导出 Starlette 中的实用程序
- 这允许使用
from fastapi.responses import JSONResponse
而不是from starlette.responses import JSONResponse
。 - 这主要是语法糖,方便开发人员体验。
- 现在
Request
、Response
、WebSocket
、status
可以直接从fastapi
导入,例如from fastapi import Response
。这是因为它们经常被使用,用于直接使用请求、设置头部和 Cookie、获取状态码等。 - 多处文档更改,但有新的文档和显著的改进
- PR #1064。
- 这允许使用
0.50.0¶
- 从关于部署版本固定的文档中添加发布说明链接。PR #1058。
- 升级代码以使用最新版本的 Starlette,包括
- 多项错误修复。
- 可选的斜杠重定向,带或不带结尾
/
。 - 路由器的事件,
"startup"
和"shutdown"
。 - PR #1057。
- 添加关于部署时固定 FastAPI 版本的文档:部署:FastAPI 版本。PR #1056。
0.49.2¶
- 修复发布说明中的链接。PR #1052 由 @sattosan 提交。
- 修复发布说明中的拼写错误。PR #1051 由 @sattosan 提交。
- 重构/澄清
serialize_response
参数名称以避免混淆。PR #1031 由 @patrickmckenna 提交。 - 重构以在独立函数中调用每个路径操作的处理函数,以简化性能分析。PR #1027 由 @sm-Fifteen 提交。
- 添加测试所需的缺失依赖项。PR #1026 由 @sm-Fifteen 提交。
- 修复响应模型接受有效类型的问题,包括 Python 类型如
List[int]
。PR #1017 由 @patrickmckenna 提交。 - 修复 SQL 教程中的格式。PR #1015 由 @vegarsti 提交。
0.49.1¶
- 修复路径操作在依赖项和路径操作函数中重复参数的问题。PR #994 由 @merowinger92 提交。
- 更新 Netlify 预览部署 GitHub action,因为修复已合并并且有新版本发布。PR #1047。
- 将 mypy 配置移至配置文件。PR #987 由 @hukkinj1 提交。
- 临时修复 Netlify 预览无法从 fork 的 PR 部署的问题。PR #1046 由 @mariacamilagl 提交。
0.49.0¶
- 修复
jsonable_encoder
中pathlib
路径的编码问题。PR #978 由 @patrickmckenna 提交。 - 将文章添加到外部链接:Python Web 框架性能比较 (Django, Flask, responder, FastAPI, japronto) 和 [FastAPI] Python ASGI Web 框架 FastAPI 入门。PR #974 由 @tokusumi 提交。
- 修复文档中的损坏链接。PR #949 由 @tsotnikov 提交。
- 修复小拼写错误。PR #941 由 @NikitaKolesov 提交。
- 更新并澄清带有
yield
的依赖项的文档。PR #986。 - 添加 Mermaid JS 支持在文档中生成图表。为依赖项:第一步和带有
yield
和HTTPException
的依赖项添加第一个图表。PR #985。 - 更新 CI 以在 GitHub actions 中运行文档部署。PR #983。
- 在 路径操作函数 中允许使用
callable
,例如使用functools.partial
修改的函数。PR #977。
0.48.0¶
- 在测试中首先运行代码检查工具,以便更快地报告错误。PR #948。
- 仅在使用
email-validator
时记录警告。PR #946。 - 通过双重依赖和
yield
简化 Peewee 文档。PR #947。 - 添加文章 外部链接:创建并将 FastAPI 应用程序部署到 Heroku。PR #942,作者 @windson。
- 更新 Sanic 的描述,因为它现在也是 ASGI。PR #932,作者 @raphaelauv。
- 修正主页上的一个错别字。PR #920,作者 @mMarzeta。
- 修正可能无效的主体的解析。PR #918,作者 @dmontagu。
- 修正错别字 #916,作者 @adursun。
- 在 OpenAPI 中允许枚举的
Any
类型。PR #906,作者 @songzhi。 - 在 外部链接 中添加文章:如何使用 AWS SAM 持续部署 FastAPI 到 AWS Lambda。PR #901,作者 @iwpnd。
- 添加关于不使用 Pydantic 的 Body 参数的注意事项。PR #900,作者 @pawamoy。
- 修正 Pydantic 字段克隆逻辑。PR #899,作者 @deuce2367。
- 修正中间件文档中的链接。PR #893,作者 @linchiwei123。
- 将默认 API 标题从 "Fast API" 重命名为 "FastAPI",以保持一致性。PR #890。
0.47.1¶
0.47.0¶
- 重构文档,使其包含更简单、更短的 教程 - 用户指南 和一个包含所有附加文档的 高级用户指南。PR #887。
- 调整外部链接、Markdown 格式、错别字。PR #881。
- 修正教程中处理 HTTP 基本认证
username
和password
的错误。PR #865,作者 @isaevpd。 - 修正处理用纯类(如
list
、tuple
等)声明的表单 路径操作 参数的问题。PR #856,作者 @nsidnev。 - 将请求
body
添加到RequestValidationError
,新文档:使用RequestValidationError
的主体。初始 PR #853,作者 @aviramha。 - 更新 外部链接,新增链接和带有
fastapi
主题的动态 GitHub 项目。PR #850。 - 修正 Peewee
contextvars
在文档中的处理方式:带 Peewee 的 SQL(关系型)数据库。PR #879。 - 使用 Python 的 Venv 和 Flit 设置开发环境,而不是要求额外的 Pipenv 复制依赖。更新文档:开发 - 贡献。PR #877。
- 更新 HTTP 基本认证 文档,以提高针对时序攻击的安全性。初始 PR #807,作者 @zwass。
0.46.0¶
- 修正错别字并调整配置。PR #837。
- 在 外部链接 中添加指向中文文章的链接。PR 810,作者 @wxq0309。
- 实现
OAuth2AuthorizationCodeBearer
类。PR #797,作者 @kuwv。 - 更新文档主页中的升级示例。PR #795,作者 @cdeil。
- 修正子路由的回调处理。PR #792,作者 @jekirl。
- 修正错别字。PR #784,作者 @kkinder。
- 在 外部链接 中添加 4 篇日文文章。PR #783,作者 @HymanZHAN。
- 在
jsonable_encoder
中添加对主类型的子类型的支持,例如 asyncpg 的 UUID。PR #756,作者 @RmStorm。 - 修正文档中 Pydantic 的
HttpUrl
使用。PR #832,作者 @Dustyposa。 - 修正文档中的 Twitter 链接。PR #813,作者 @justindujardin。
- 添加关于正确 使用 FastAPI 和 Peewee ORM 的文档。包括如何覆盖 Peewee 的部分以正确处理异步线程。PR #789。
0.45.0¶
- 添加对 OpenAPI 回调的支持
- 新文档:OpenAPI 回调。
- 重构
operationId
的生成,使其成为有效的 Python 名称(在大多数语言中也是有效的变量)。 - 为
APIRouter
添加default_response_class
参数。 - 原始 PR #722,作者 @booooh。
- 重构日志记录以在所有地方使用相同的记录器,更新日志字符串和级别。PR #781。
- 在 外部链接 中添加文章:为什么您应该尝试 FastAPI?。PR #766,作者 @prostomarkeloff。
- 移除文档中处理错误的性别偏见。PR #780。原始想法来自 PR #761,作者 @classywhetten。
- 将文档和对
body-schema
的引用重命名为body-fields
,以与 Pydantic 保持一致。PR #746,作者 @prostomarkeloff。
0.44.1¶
- 将 GitHub 社交预览图片添加到 git。PR #752。
- 更新 PyPI "trove 分类器"。PR #751。
- 添加对 Python 3.8 的完全支持。在 Travis 中全面启用 Python 3.8。PR 749。
- 更新“新问题”模板。PR #749。
- 修正奇异 Pydantic 类型错误的序列化。PR #748,作者 @dmontagu。
0.44.0¶
- 添加 GitHub action Issue Manager。PR #742。
- 修正文档中的错别字。PR 734,作者 @bundabrg。
- 修正
jsonable_encoder
中custom_encoder
的使用。PR #715,作者 @matrixise。 - 修正无效的 XML 示例。PR 710,作者 @OcasoProtal。
- 修正部署文档中的错别字并更新措辞。PR #700,作者 @marier-nico。
- 在
APIRouter
文档中添加关于依赖的注意事项。PR #698,作者 @marier-nico。 - 添加对异步类方法作为依赖的支持 #681,作者 @frankie567。
- 将 FastAPI 与 Swagger UI 备忘单添加到外部链接。PR #671,作者 @euri10。
- 修正 CORS 示例中 HTTP 协议的错别字。PR #647,作者 @forestmonster。
- 添加对 Pydantic
1.0.0
及以上版本的支持,并提供对 Pydantic0.32.2
的临时(已弃用)向后兼容性。PR #646,作者 @dmontagu。
0.43.0¶
- 更新文档以减少性别偏见。PR #645,作者 @ticosax。
- 添加关于 根据函数名覆盖所有 路径操作 的
operationId
的文档。PR #642,作者 @SKalt。 - 修正模型中验证器生成不正确键序的问题。PR #637,作者 @jaddison。
- 为无内容的响应生成正确的 OpenAPI 文档。PR #621,作者 @brotskydotcom。
- 为了保持一致性,从文档中的 Bash 代码块中移除
$
。PR #613,作者 @nstapelbroek。 - 添加关于 自托管文档(Swagger UI)静态资源 的文档,例如,用于离线使用文档或无网络时使用。初始 PR #557,作者 @svalouch。
- 修正升级后
black
代码检查的问题。PR #682,作者 @frankie567。
0.42.0¶
- 添加带
yield
的依赖项,也称为退出步骤、上下文管理器、清理、拆卸等。- 这允许在依赖项完成后添加额外的代码。例如,它可用于关闭数据库连接。
- 带
yield
的依赖项可以是普通或async
的,FastAPI 将在线程池中运行普通依赖项。 - 它们可以与普通依赖项结合使用。
- 可以有任意树/级别的带
yield
的依赖项,并且退出步骤会自动按正确顺序处理。 - Python 3.7 及以上版本默认支持。对于 Python 3.6,需要额外的向后移植依赖项
async-exit-stack
async-generator
- 新文档位于 带
yield
的依赖项。 - 更新的数据库文档 SQL(关系型)数据库:主 FastAPI 应用程序。
- PR #595。
- 修正网站中的
sitemap.xml
。PR #598,作者 @samuelcolvin。
0.41.0¶
- 要求 Starlette 升级到
0.12.9
,新范围是>=0.12.9,<=0.12.9
。- 在
app.state
中为 FastAPI 应用程序添加State
。 - PR #593。
- 在
- 改进
Request
和APIRoute
的自定义类处理。- 这有助于更轻松地解决以下用例:
- 在请求之前和/或之后读取主体(相当于中间件)。
- 仅对 路径操作 的子集运行类似中间件的代码。
- 在将请求传递给 路径操作函数 之前处理请求。例如:解压缩、反序列化等。
- 在 路径操作函数 生成响应后但在返回之前处理响应。例如:添加自定义头、日志记录、添加额外元数据。
- 新文档章节:自定义 Request 和 APIRoute 类。
- PR #589,作者 @dmontagu。
- 这有助于更轻松地解决以下用例:
- 修正路由器在包含其他子路由器时保留自定义路由类的问题。PR #538,作者 @dmontagu。
0.40.0¶
- 在文档中添加关于使用表单时安装
python-multipart
的注意事项。PR #574,作者 @sliptonic。 - 按字母顺序生成 OpenAPI 模式。PR #554,作者 @dmontagu。
- 添加对截断 路径操作函数 的 docstring 的支持。
- 新文档位于 来自 docstring 的高级描述。
- PR #556,作者 @svalouch。
- 修正为 Swagger UI 和 ReDoc 生成的 HTML 文件中的
DOCTYPE
。PR #537,作者 @Trim21。 - 修正处理
4XX
响应覆盖默认422
验证错误响应的问题。PR #517,作者 @tsouvarev。 - 修正 简单 HTTP 基本认证 文档中的错别字。PR #514,作者 @prostomarkeloff。
- 修正 第一步 中不正确的文档示例。PR #511,作者 @IgnatovFedor。
- 添加对 Swagger UI initOauth 设置的支持,带参数
swagger_ui_init_oauth
。PR #499,作者 @zamiramir。
0.39.0¶
- 允许路径参数具有默认值(例如
None
),并将其丢弃而不是引发错误。- 这允许声明一个参数,如
user_id: str = None
,可以从查询参数中获取,但同一个 路径操作 可以包含在带有路径/users/{user_id}
的路由器中,在这种情况下它将从路径中获取并且是必需的。 - PR #464,作者 @jonathanunderwood。
- 这允许声明一个参数,如
- 添加对在
FastAPI
实例或include_router
中设置default_response_class
的支持。初始 PR #467,作者 @toppk。 - 添加对使用字符串和
from __future__ import annotations
进行类型注释的支持。PR #451,作者 @dmontagu。
0.38.1¶
- 修正不正确的
Request
类导入。PR #493,作者 @kamalgill。
0.38.0¶
- 在 外部链接 中添加最新文章和最新观点。PR #490。
- 升级 Starlette 的支持范围以包含
0.12.8
。新范围是>=0.11.1,<=0.12.8"
。PR #477,作者 @dmontagu。 - 升级对 Pydantic 0.32.2 版本的支持,并更新内部代码以使用它(破坏性更改)。PR #463,作者 @dmontagu。
0.37.0¶
- 添加对自定义路由类的支持,用于高级用例。PR #468,作者 @dmontagu。
- 允许在 ReDoc 中禁用 Google 字体。PR #481,作者 @b1-luettje。
- 修正安全问题:当返回响应模型的子类并使用
skip_defaults
时,可能会泄漏信息。PR #485,作者 @dmontagu。 - 为 Python 3.8-dev 启用测试。PR #465,作者 @Jamim。
- 添加对
response_model
中 Pydantic dataclasses 的支持和测试。PR #454,作者 @dconathan。 - 修正 OAuth2 JWT 教程中的错别字。PR #447,作者 @pablogamboa。
- 使用
Body()
参数中的media_type
参数来设置 OpenAPI 中requestBody
的媒体类型。PR #439,作者 @divums。 - 添加文章 使用 ONNX 和 FastAPI 部署 scikit-learn 模型,作者 Nico Axtmann。PR #438,作者 @naxty。
- 允许在 OpenAPI 中设置自定义
422
(验证错误)响应/模式。 - 修正状态码与
"default"
额外响应同时使用的问题。PR #489。 - 允许附加响应使用状态码范围(如
5XX
和4XX
)和"default"
。PR #435,作者 @divums。
0.36.0¶
- 修正返回 Pydantic 模型时
skip_defaults
的实现。PR #422,作者 @dmontagu。 - 修正当在同一个 路径操作 的多个地方使用相同依赖时 OpenAPI 生成的问题。PR #417,作者 @dmontagu。
- 允许在与
include_router
和prefix
一起使用时,在 路径操作 中具有空路径。 - 合并 PR #415 后修复 mypy 错误。PR #462。
0.35.0¶
- 修正路由
assert
中的错别字。PR #419,作者 @pablogamboa。 - 修正文档中的错别字。PR #411,作者 @bronsen。
- 修正解析用
Union
声明的主体类型。PR #400,作者 @koxudaxi。
0.34.0¶
0.33.0¶
0.32.0¶
-
修正文档中功能的错别字。PR #380,作者 @MartinoMensio。
-
更新
Enum
文档,使其继承自str
并改进 Swagger UI 渲染。PR #351。 -
修正回归,重新添加 Swagger UI 深度链接。PR #350。
-
添加在
.include_router
的prefix
中包含路径模板的测试。PR #349。 -
在文档中添加注释:使用不同的
prefix
多次包含同一个路由器。PR #348。 -
修正两个同名函数(在不同模块中)具有相同复合主体时的 OpenAPI/JSON 模式生成。
- 复合主体的 ID 现在基于路径,而不仅仅是路由名称,因为自动生成的名称使用函数名,这可能在不同模块中重复。
- 相同的新的 ID 生成也适用于响应模型。
- 这也改变了这些模型生成的标题。
- 只有复合主体和响应模型受到影响,因为它们是动态生成的,没有模块(Python 文件)。
- 这也增加了使用
.include_router()
多次包含同一个APIRouter
的可能性,使用不同的前缀,例如/api/v2
和/api/latest
,现在它将正常工作。 - PR #347。
0.31.0¶
- 将 Pydantic 支持版本升级到
0.29.0
。
0.30.1¶
-
从仓库中移除
Pipfile.lock
,因为它只由 FastAPI 的贡献者(FastAPI 本身的开发者)使用。详情请参阅 PR。PR #340。 -
更新 帮助 FastAPI - 获取帮助 章节。PR #339。
-
优化内部类型声明,以改进/移除用户代码中的 Mypy 错误。PR #338。
-
更新并澄清 SQLAlchemy SQL 教程。PR #331,作者 @mariacamilagl。
-
添加 SQLite 在线查看器到文档中。PR #330,作者 @cyrilbois。
0.30.0¶
-
添加对 Pydantic ORM 模式的支持
- 更新了关于 SQL 与 SQLAlchemy 的文档,使用 ORM 模式的 Pydantic 模型,带关系的 SQLAlchemy 模型,文件分离,代码简化以及其他更改。新文档:SQL(关系型)数据库。
- 对 ORM 模式的新支持解决了/添加了与 ORM 相关的问题/功能,如惰性加载、混合属性、动态/getter(使用
@property
装饰器)以及其他几个用例。 - 这适用于 SQLAlchemy、Peewee、Tortoise ORM、GINO ORM 以及几乎所有其他 ORM。
- 如果您的 路径操作 返回一个具有属性的任意对象(例如
my_item.name
而不是my_item["name"]
),并且您使用response_model
,请务必按照文档(上面链接)中的说明,将 Pydantic 模型更新为orm_mode = True
。 - 关于接收纯
dict
作为请求主体的新文档:任意dict
的主体。 - 关于在响应中返回任意
dict
的新文档:带有任意dict
的响应。 - 技术细节:
- 声明
response_model
后,它将直接用于从 路径操作函数 返回的任何内容生成响应内容。 - 在此之前,返回内容首先通过
jsonable_encoder
以确保它是一个“可 JSON 化”的对象,如dict
,而不是一个带有属性的任意对象(如 ORM 模型)。这就是为什么您应该确保更新您的 Pydantic 模型,以便带有属性的对象使用orm_mode = True
。 - 如果您没有
response_model
,返回对象仍将首先通过jsonable_encoder
。 - 当声明
response_model
时,相同的response_model
类型声明不会原样使用,它将被“克隆”以创建一个新的(一个克隆的 PydanticField
,其所有子模型也都被克隆)。 - 这避免/修复了一个潜在的安全问题:由于返回的对象直接传递给 Pydantic,如果返回的对象是
response_model
的子类(例如,您返回一个继承自User
但包含额外字段(如hashed_password
)的UserInDB
,并且User
用于response_model
),它仍然会通过验证(因为UserInDB
是User
的子类),并且对象将按原样返回,包括hashed_password
。为了解决这个问题,如果声明的response_model
是一个 Pydantic 模型类(或其中包含 Pydantic 模型类,例如在List[Item]
中),Pydantic 模型类将是一个不同的(“克隆的”)类。因此,子类对象不会简单地通过验证并按原样返回,因为它不再是克隆的response_model
的子类。相反,将创建一个新的 Pydantic 模型对象,其中包含返回对象的内容。因此,它将是一个新对象(由返回对象的数据创建),并将由克隆的response_model
过滤,仅包含正常声明的字段。
- 声明
- PR #322。
-
对附加响应使用默认响应状态码描述。PR #313,作者 @duxiaoyao。
0.29.1¶
-
修正处理带有必需主体参数的空主体请求的问题。PR #311。更新文档位于:带默认值的查询参数列表/多个值:使用
list
。 -
修正 响应模型 文档中的不一致。PR #288,作者 @awiddersheim。
0.29.0¶
- 添加对声明
Response
参数的支持- 这允许声明
- 响应 Cookie.
- 响应 Header.
- 与默认值不同的 HTTP 状态码:响应 - 更改状态码。
- 所有这些同时仍然能够返回任意对象(
dict
、数据库模型等)。 - 更新对 Hug 的归属,因为它启发了
response
参数模式。 - PR #294。
- 这允许声明
0.28.0¶
-
实现每个请求的依赖缓存。
-
为测试实现依赖覆盖。
0.27.2¶
- 修正路径和查询参数接收
dict
作为有效类型的问题。它应该映射到主体负载。PR #287。更新文档位于:带有默认值的查询参数列表/多个值:使用list
。
0.27.1¶
-
修正
HTTPBearer
安全方案中auto_error=False
的处理。如果auto_error=False
,则当存在不正确的Authorization
头时,不应raise
。PR #282。 -
修正
HTTPException
的类型声明。PR #279。
0.27.0¶
-
使用 Pydantic
Field
重构参数提取- 对 路径操作 的参数提取进行了大规模重构、改进和简化。
- 修正/添加对带列表默认值的列表 查询参数 的支持。新文档:带有默认值的查询参数列表/多个值。
- 添加对 路径操作 参数中枚举的支持。新文档:路径参数:预定义值。
- 添加对使用
Optional
进行类型注释的支持,如param: Optional[str] = None
。新文档:可选类型声明。 - PR #278。
0.26.0¶
-
分离验证错误的处理。
- 这将允许开发人员自定义异常处理程序。
- 更好地记录如何处理异常和使用错误处理程序。
- 包含
RequestValidationError
和WebSocketRequestValidationError
(后者在 encode/starlette#527 或等效项合并后将非常有用)。 - 关于异常处理程序的新文档
- PR #273。
-
修正 路径参数 中的 路径 支持,无需显式
Path(...)
。 -
修正
response_model
的类型声明以允许泛型 Python 类型如List[Model]
。主要是为了修复用户代码中的mypy
。PR #266。
0.25.0¶
-
添加对 Pydantic 的
include
、exclude
、by_alias
的支持。 -
添加对 Pydantic 的
skip_defaults
支持
0.24.0¶
-
添加对带有依赖项和参数的 WebSockets 的支持。
- 支持包括
Depends
安全
Cookie
Header
Path
Query
- ...因为这些与 WebSockets 协议兼容(例如
Body
不兼容)。
- 更新 WebSockets 文档.
- PR #178,作者 @jekirl。
- 支持包括
-
将 Pydantic 的兼容版本升级到
0.26.0
。
0.23.0¶
-
将 Starlette 的兼容版本升级到
0.12.0
。- 这包括对 ASGI 3(标准的最新版本)的支持。
- 现在可以使用 Starlette 的
StreamingResponse
与迭代器,例如 文件类 对象(如open()
返回的对象)。 - 现在可以使用
starlette.concurrency
中的低级实用工具iterate_in_threadpool
(用于高级场景)。 - PR #243。
-
为 Swagger UI 添加 OAuth2 重定向页面。这允许在 Swagger UI 文档中进行委派认证。为此,您需要将
{your_origin}/docs/oauth2-redirect
添加到您的 OAuth2 提供商(在 Auth0、Facebook、Google 等)的允许回调中。- 例如,在开发期间,它可能是
https://:8000/docs/oauth2-redirect
。 - 请记住,此回调 URL 独立于您的前端使用的任何回调。您可能在
https://yourdomain.com/login/callback
也有另一个回调。 - 这仅用于在带有 Swagger UI 的 API 文档中允许委派认证。
- PR #198,作者 @steinitzu。
- 例如,在开发期间,它可能是
-
将 Swagger UI 和 ReDoc 路由处理程序(路径操作)从 lambda 函数改为
async
函数以提高性能。PR #241,作者 @Trim21。 -
使 Swagger UI 和 ReDoc URL 可参数化,允许托管和提供它们的本地版本并拥有离线文档。PR #112,作者 @euri10。
0.22.0¶
-
添加对
dependencies
参数的支持- 在 路径操作装饰器 中一个参数,用于那些应该执行但返回值不重要或未在 路径操作函数 中使用的依赖项。
- FastAPI 应用程序和路由器的
.include_router()
方法中的一个参数,用于包含在路由器中每个 路径操作 中都应该执行的依赖项。- 这很有用,例如,在特定的一组 路径操作 中要求认证或权限。
- 不同的
dependencies
可以应用于不同的路由器。
- 这些
dependencies
在普通参数依赖项之前运行。普通依赖项也运行。它们可以组合使用。 - 在路由器中声明的依赖项首先执行,然后是 路径操作装饰器 中定义的依赖项,然后是普通参数中声明的依赖项。它们都组合并执行。
- 所有这些还支持在这些
dependencies
参数中使用带scopes
的Security
,用于更高级的带范围的 OAuth 2.0 安全场景。 - 关于 路径操作装饰器 中的依赖项 的新文档。
- 关于
include_router()
方法中的依赖项 的新文档。 - PR #235。
-
修正 Starlette URL 转换器在 OpenAPI 文档中的问题。在使用
path
转换器时特别有用,用于将整个路径作为参数,如/some/url/{p:path}
。PR #234,作者 @euri10。 -
使从
fastapi
导出的默认参数实用工具成为函数而不是类(新函数返回这些类的实例)。以便能够覆盖返回类型并修复 FastAPI 用户代码中的mypy
错误。适用于Path
、Query
、Header
、Cookie
、Body
、Form
、File
、Depends
和Security
。PR #226 和 PR #231。 -
分离开发脚本
test.sh
、lint.sh
和format.sh
。PR #232。 -
重新启用 Python 3.7 的
black
格式检查。PR #229,作者 @zamiramir。
0.21.0¶
-
在主体解析错误时,从先前的异常中
raise
,以便在日志代码中更好地进行内省。PR #192,作者 @ricardomomm。 -
修正路由中的错别字。PR #221,作者 @djlambert。
0.20.1¶
-
添加文件
py.typed
,包含包的类型信息。PR #209,作者 @meadsteve。 -
添加用于 Gitter 的 FastAPI 机器人。自动宣布新版本。PR #189。
0.20.0¶
-
升级 OAuth2
-
添加关于处理 响应 Cookies 和 响应 Headers 的文档。PR #185。
0.19.0¶
-
将 路径操作装饰器 参数
content_type
重命名为response_class
。PR #183。 -
添加文档
- 如何在 JSON 兼容编码器 中使用
jsonable_encoder
。 - 如何 直接返回响应。
- 更新如何使用 自定义响应类。
- PR #184。
- 如何在 JSON 兼容编码器 中使用
0.18.0¶
0.17.0¶
-
使 Flit 从 CI 发布。PR #170。
-
添加关于处理 CORS(跨域资源共享) 的文档。PR #169。
-
默认按别名编码。这允许 Pydantic
alias
参数默认生效。PR #168。
0.16.0¶
-
升级 路径操作
docstring
解析以支持正确的 Markdown 描述。新文档位于 路径操作配置。PR #163。 -
重构 Pydantic 的内部使用,以使用正确的数据类型。PR #164。
-
修正 Extra Models 教程中的错别字。PR #159,作者 @danielmichaels。
-
修正 查询参数 文档中的 URL 示例。PR #157,作者 @hayata-yamamoto。
0.15.0¶
0.14.0¶
-
改进 OpenAPI 中 路径操作 的自动生成名称(在 API 文档中)。函数
read_items
将拥有 "Read Items",而不是 "Read Items Get" 这样的生成名称。PR #155。 -
添加文档:测试 FastAPI。PR #151。
-
更新
/docs
Swagger UI 以启用深度链接。这允许直接共享指向文档中 路径操作 文档的 URL。PR #148,作者 @wshayes。 -
更新开发依赖项
Pipfile.lock
。PR #150。 -
在 替代方案、启发和比较 中包含 Falcon 和 Hug。
0.13.0¶
- 改进/升级 OAuth2 范围支持与
SecurityScopes
SecurityScopes
可以像Request
一样声明为参数,以获取所有超级依赖项/依赖者的范围。- 改进
Security
处理,在声明SecurityScopes
时合并范围。 - 允许使用
Depends
的SecurityBase
(如OAuth2
)类并仍然记录它们。现在只有声明scopes
才需要Security
。 - 更新了关于 带密码(和哈希)、带 JWT 令牌的 Bearer OAuth2 的文档。
- 关于 OAuth2 范围 的新文档。
- PR #141。
0.12.1¶
-
修正错误:处理
APIRouter.include_router()
中的附加responses
。PR #140。 -
修正 SQL 教程中的错别字。PR #138,作者 @mostaphaRoudsari。
0.12.0¶
- 为 路径操作装饰器 添加附加
responses
参数,以扩展 OpenAPI(和 API 文档)中的响应。 - 更新
scripts/test-cov-html.sh
以允许传递额外参数,如-vv
,用于开发。
0.11.0¶
-
为安全实用函数添加
auto_error
参数。允许它们可选。还允许有多个替代安全方案,然后在单个依赖项中进行检查,而不是每个方案都验证并在不满足时自动向客户端返回错误。PR #134。
0.10.3¶
-
添加 Gitter 聊天、徽章、链接等。https://gitter.im/tiangolo/fastapi 。PR #117。
-
添加关于 扩展 OpenAPI 的文档。PR #126。
-
让 Travis 运行 Ubuntu Xenial(新版本)和 Python 3.7 而不是 Python 3.7-dev。PR #92,作者 @blueyed。
-
在 响应模型文档 中添加关于为什么使用函数参数而不是函数返回类型注释的注意事项。PR #109,作者 @JHSaunders。
-
修正事件文档(启动/关闭)函数名称。PR #105,作者 @stratosgear。
0.10.2¶
-
修正 Python
Union
声明的 OpenAPI (JSON 模式) (JSON 模式additionalProperties
)。PR #121。 -
更新 后台任务,并添加关于 Celery 的说明。
0.10.1¶
- 添加 encode/databases 的文档和测试。新文档位于:异步 SQL(关系型)数据库。PR #107。
0.10.0¶
-
添加对 路径操作函数 和依赖项中后台任务的支持。关于 后台任务的新文档在这里。PR #103。
-
关于 事件:启动 - 关闭 的新文档章节。PR #99。
0.9.1¶
- 文档化接收 带有相同查询参数的多个值 和 重复头部。PR #95。
0.9.0¶
-
将兼容的 Pydantic 版本升级到
0.21.0
。PR #90。 -
添加关于:应用程序配置 的文档。
-
修正文档中的错别字。PR #76,作者 @matthewhegarty。
-
修正“部署”中指向“大型应用程序”的链接。
0.8.0¶
-
添加在
app.include_router()
中添加tags
的支持。PR #55,作者 @euri10。文档在章节 大型应用程序 中已更新。 -
更新与 Uvicorn 相关的文档,以使用
0.5.x
版本中的新--reload
选项。PR #74。 -
更新
isort
导入和脚本以兼容新版本。PR #75。
0.7.1¶
-
更新 关于
async def
处理的技术细节,相对于以前的框架。PR #64,作者 @haizaar。 -
在 Travis CI 上自动触发 Docker 镜像构建。PR #65。
0.7.0¶
- 添加对
File
参数注释中UploadFile
的支持。- 这包括一个文件类接口。
- 以下是关于声明 带有
UploadFile
的File
参数 的更新文档。 - 以下是关于使用
Form
参数与File
参数混合使用,同时支持bytes
和UploadFile
的更新文档。 - PR #63。
0.6.4¶
-
在文档中添加 关于
async def
处理的技术细节。PR #61。 -
添加关于 在编辑器中调试 FastAPI 应用程序 的文档。
-
修正文档中的错别字。
-
添加关于 历史、设计和未来 的章节。
-
添加关于 使用 WebSockets 和 FastAPI 的文档。PR #62。
0.6.3¶
- 为文档添加 Favicons。PR #53。
0.6.2¶
-
引入基于 FastAPI 和 PostgreSQL 的新项目生成器:https://github.com/tiangolo/full-stack-fastapi-postgresql。PR #52。
-
改进 SQL 与 SQLAlchemy 教程中的中间件命名 https://fastapi.org.cn/tutorial/sql-databases/。
0.6.1¶
- 添加 GraphQL 文档:https://fastapi.org.cn/advanced/graphql/。PR #48。
0.6.0¶
-
更新 https://fastapi.org.cn/tutorial/sql-databases/ 上的 SQL 与 SQLAlchemy 教程,使用新的官方
request.state
。PR #45。 -
将 Starlette 升级到
0.11.1
版本,并添加所需的兼容性更改。PR #44。
0.5.1¶
-
添加关于 帮助和获取 FastAPI 帮助 的章节。
-
添加关于 文档中路径操作顺序 的注意事项。
-
添加 开发 - 贡献文档章节。PR #42。
0.5.0¶
-
添加新的
HTTPException
,支持自定义头部。并新增错误处理文档:https://fastapi.org.cn/tutorial/handling-errors/。PR #35。 -
添加 直接使用 Starlette
Request
对象 的文档。查看 #25,作者 @euri10。 -
添加问题模板,以简化错误报告、获取帮助等:#34。
-
更新 SQLAlchemy 教程示例,位于 https://fastapi.org.cn/tutorial/sql-databases/,使用中间件和附加到请求的数据库会话。
0.4.0¶
-
添加
openapi_prefix
,支持反向代理和挂载子应用程序。请参阅文档:https://fastapi.org.cn/advanced/sub-applications-proxy/:#26,作者 @kabirkhan。 -
更新 SQLAlchemy 文档/教程,包括关于 DB Browser for SQLite 的说明。
0.3.0¶
- 修正/添加 SQLAlchemy 支持,包括 ORM,并更新 SQLAlchemy 文档:#30。
0.2.1¶
- 修正
jsonable_encoder
对于带有Config
但没有json_encoders
的 Pydantic 模型的问题:#29。