Spaces:
Paused
Paused
| <html lang="de" class="no-js"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width,initial-scale=1"> | |
| <meta name="description" content="FastAPI framework, high performance, easy to learn, fast to code, ready for production"> | |
| <link rel="canonical" href="https://fastapi.tiangolo.com/de/"> | |
| <link rel="next" href="features/"> | |
| <link rel="alternate" href="/" hreflang="de"> | |
| <link rel="alternate" href="/de/" hreflang="de"> | |
| <link rel="alternate" href="/es/" hreflang="de"> | |
| <link rel="alternate" href="/fr/" hreflang="de"> | |
| <link rel="alternate" href="/ja/" hreflang="de"> | |
| <link rel="alternate" href="/ko/" hreflang="de"> | |
| <link rel="alternate" href="/pt/" hreflang="de"> | |
| <link rel="alternate" href="/ru/" hreflang="de"> | |
| <link rel="alternate" href="/tr/" hreflang="de"> | |
| <link rel="alternate" href="/uk/" hreflang="de"> | |
| <link rel="alternate" href="/zh/" hreflang="de"> | |
| <link rel="alternate" href="/zh-hant/" hreflang="de"> | |
| <link rel="icon" href="img/favicon.png"> | |
| <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.1"> | |
| <title>FastAPI</title> | |
| <link rel="stylesheet" href="assets/stylesheets/main.484c7ddc.min.css"> | |
| <link rel="stylesheet" href="assets/stylesheets/palette.ab4e12ef.min.css"> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> | |
| <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> | |
| <link rel="stylesheet" href="assets/_mkdocstrings.css"> | |
| <link rel="stylesheet" href="css/termynal.css"> | |
| <link rel="stylesheet" href="css/custom.css"> | |
| <script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> | |
| <meta property="og:type" content="website" /> | |
| <meta property="og:title" content="FastAPI" /> | |
| <meta property="og:description" content="FastAPI framework, high performance, easy to learn, fast to code, ready for production" /> | |
| <meta property="og:image" content="https://fastapi.tiangolo.com/de/assets/images/social/index.png" /> | |
| <meta property="og:image:type" content="image/png" /> | |
| <meta property="og:image:width" content="1200" /> | |
| <meta property="og:image:height" content="630" /> | |
| <meta property="og:url" content="https://fastapi.tiangolo.com/de/" /> | |
| <meta property="twitter:card" content="summary_large_image" /> | |
| <meta property="twitter:title" content="FastAPI" /> | |
| <meta property="twitter:description" content="FastAPI framework, high performance, easy to learn, fast to code, ready for production" /> | |
| <meta property="twitter:image" content="https://fastapi.tiangolo.com/de/assets/images/social/index.png" /> | |
| </head> | |
| <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"> | |
| <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> | |
| <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> | |
| <label class="md-overlay" for="__drawer"></label> | |
| <div data-md-component="skip"> | |
| <a href="#fastapi" class="md-skip"> | |
| Zum Inhalt | |
| </a> | |
| </div> | |
| <div data-md-component="announce"> | |
| <aside class="md-banner"> | |
| <div class="md-banner__inner md-grid md-typeset"> | |
| <div class="announce-wrapper"> | |
| <div id="announce-left"> | |
| <div class="item"> | |
| <a class="announce-link" href="https://fastapicloud.com" target="_blank"> | |
| <span class="twemoji"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 19c0 .34.04.67.09 1H6.5c-1.5 0-2.81-.5-3.89-1.57C1.54 17.38 1 16.09 1 14.58q0-1.95 1.17-3.48C3.34 9.57 4 9.43 5.25 9.15c.42-1.53 1.25-2.77 2.5-3.72S10.42 4 12 4c1.95 0 3.6.68 4.96 2.04S19 9.05 19 11c1.15.13 2.1.63 2.86 1.5.51.57.84 1.21 1 1.92A5.9 5.9 0 0 0 19 13c-3.31 0-6 2.69-6 6m3-1h2v4h2v-4h2l-3-3z"/></svg> | |
| </span> Join the <strong>FastAPI Cloud</strong> waiting list 🚀 | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a class="announce-link" href="https://x.com/fastapi" target="_blank"> | |
| <span class="twemoji"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M357.2 48h70.6L273.6 224.2 455 464H313L201.7 318.6 74.5 464H3.8l164.9-188.5L-5.2 48h145.6l100.5 132.9zm-24.8 373.8h39.1L119.1 88h-42z"/></svg> | |
| </span> Follow <strong>@fastapi</strong> on <strong>X (Twitter)</strong> to stay updated | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a class="announce-link" href="https://www.linkedin.com/company/fastapi" target="_blank"> | |
| <span class="twemoji linkedin"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77m282.1 320h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9z"/></svg> | |
| </span> Follow <strong>FastAPI</strong> on <strong>LinkedIn</strong> to stay updated | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a class="announce-link" href="https://fastapi.tiangolo.com/newsletter/"> | |
| <span class="twemoji"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m20 8-8 5-8-5V6l8 5 8-5m0-2H4c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2"/></svg> | |
| </span> Subscribe to the <strong>FastAPI and friends</strong> newsletter 🎉 | |
| </a> | |
| </div> | |
| </div> | |
| <div id="announce-right" style="position: relative;"> | |
| <div class="item"> | |
| <a title="BlockBee Cryptocurrency Payment Gateway" style="display: block; position: relative;" href="https://blockbee.io?ref=fastapi" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/blockbee-banner.png" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="Scalar: Beautiful Open-Source API References from Swagger/OpenAPI files" style="display: block; position: relative;" href="https://github.com/scalar/scalar/?utm_source=fastapi&utm_medium=website&utm_campaign=top-banner" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/scalar-banner.svg" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="Auth, user management and more for your B2B product" style="display: block; position: relative;" href="https://www.propelauth.com/?utm_source=fastapi&utm_campaign=1223&utm_medium=topbanner" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/propelauth-banner.png" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="liblab - Generate SDKs from FastAPI" style="display: block; position: relative;" href="https://liblab.com?utm_source=fastapi" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/liblab-banner.png" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="Deploy & scale any full-stack web app on Render. Focus on building apps, not infra." style="display: block; position: relative;" href="https://docs.render.com/deploy-fastapi?utm_source=deploydoc&utm_medium=referral&utm_campaign=fastapi" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/render-banner.svg" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="Cut Code Review Time & Bugs in Half with CodeRabbit" style="display: block; position: relative;" href="https://www.coderabbit.ai/?utm_source=fastapi&utm_medium=banner&utm_campaign=fastapi" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/coderabbit-banner.png" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="Making Retail Purchases Actionable for Brands and Developers" style="display: block; position: relative;" href="https://subtotal.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=open-source" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/subtotal-banner.svg" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="Deploy enterprise applications at startup speed" style="display: block; position: relative;" href="https://docs.railway.com/guides/fastapi?utm_medium=integration&utm_source=docs&utm_campaign=fastapi" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/railway-banner.png" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="SerpApi: Web Search API" style="display: block; position: relative;" href="https://serpapi.com/?utm_source=fastapi_website" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/serpapi-banner.png" /> | |
| </a> | |
| </div> | |
| <div class="item"> | |
| <a title="Greptile: The AI Code Reviewer" style="display: block; position: relative;" href="https://www.greptile.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=fastapi_sponsor_page" target="_blank"> | |
| <span class="sponsor-badge">sponsor</span> | |
| <img class="sponsor-image" src="/img/sponsors/greptile-banner.png" /> | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </aside> | |
| </div> | |
| <header class="md-header md-header--shadow md-header--lifted" data-md-component="header"> | |
| <nav class="md-header__inner md-grid" aria-label="Kopfzeile"> | |
| <a href="." title="FastAPI" class="md-header__button md-logo" aria-label="FastAPI" data-md-component="logo"> | |
| <img src="img/icon-white.svg" alt="logo"> | |
| </a> | |
| <label class="md-header__button md-icon" for="__drawer"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> | |
| </label> | |
| <div class="md-header__title" data-md-component="header-title"> | |
| <div class="md-header__ellipsis"> | |
| <div class="md-header__topic"> | |
| <span class="md-ellipsis"> | |
| FastAPI | |
| </span> | |
| </div> | |
| <div class="md-header__topic" data-md-component="header-topic"> | |
| <span class="md-ellipsis"> | |
| FastAPI | |
| </span> | |
| </div> | |
| </div> | |
| </div> | |
| <form class="md-header__option" data-md-component="palette"> | |
| <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0"> | |
| <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 2C5.13 2 2 5.13 2 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.87-3.13-7-7-7M6 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H6zm13-8h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9zm-2.15 5.65L18 15l1.15 3.65z"/></svg> | |
| </label> | |
| <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="amber" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1"> | |
| <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a7 7 0 0 0-7 7c0 2.38 1.19 4.47 3 5.74V17a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-2.26c1.81-1.27 3-3.36 3-5.74a7 7 0 0 0-7-7M9 21a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-1H9z"/></svg> | |
| </label> | |
| <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent="amber" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_2"> | |
| <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a7 7 0 0 1 7 7c0 2.38-1.19 4.47-3 5.74V17a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-2.26C6.19 13.47 5 11.38 5 9a7 7 0 0 1 7-7M9 21v-1h6v1a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1m3-17a5 5 0 0 0-5 5c0 2.05 1.23 3.81 3 4.58V16h4v-2.42c1.77-.77 3-2.53 3-4.58a5 5 0 0 0-5-5"/></svg> | |
| </label> | |
| </form> | |
| <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> | |
| <div class="md-header__option"> | |
| <div class="md-select"> | |
| <button class="md-header__button md-icon" aria-label="Sprache wechseln"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"/></svg> | |
| </button> | |
| <div class="md-select__inner"> | |
| <ul class="md-select__list"> | |
| <li class="md-select__item"> | |
| <a href="/" hreflang="" class="md-select__link"> | |
| en - English | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/de/" hreflang="" class="md-select__link"> | |
| de - Deutsch | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/es/" hreflang="" class="md-select__link"> | |
| es - español | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/fr/" hreflang="" class="md-select__link"> | |
| fr - français | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/ja/" hreflang="" class="md-select__link"> | |
| ja - 日本語 | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/ko/" hreflang="" class="md-select__link"> | |
| ko - 한국어 | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/pt/" hreflang="" class="md-select__link"> | |
| pt - português | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/ru/" hreflang="" class="md-select__link"> | |
| ru - русский язык | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/tr/" hreflang="" class="md-select__link"> | |
| tr - Türkçe | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/uk/" hreflang="" class="md-select__link"> | |
| uk - українська мова | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/zh/" hreflang="" class="md-select__link"> | |
| zh - 简体中文 | |
| </a> | |
| </li> | |
| <li class="md-select__item"> | |
| <a href="/zh-hant/" hreflang="" class="md-select__link"> | |
| zh-hant - 繁體中文 | |
| </a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <label class="md-header__button md-icon" for="__search"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> | |
| </label> | |
| <div class="md-search" data-md-component="search" role="dialog"> | |
| <label class="md-search__overlay" for="__search"></label> | |
| <div class="md-search__inner" role="search"> | |
| <form class="md-search__form" name="search"> | |
| <input type="text" class="md-search__input" name="query" aria-label="Suche" placeholder="Suche" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> | |
| <label class="md-search__icon md-icon" for="__search"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> | |
| </label> | |
| <nav class="md-search__options" aria-label="Suche"> | |
| <a href="javascript:void(0)" class="md-search__icon md-icon" title="Teilen" aria-label="Teilen" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg> | |
| </a> | |
| <button type="reset" class="md-search__icon md-icon" title="Zurücksetzen" aria-label="Zurücksetzen" tabindex="-1"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> | |
| </button> | |
| </nav> | |
| <div class="md-search__suggest" data-md-component="search-suggest"></div> | |
| </form> | |
| <div class="md-search__output"> | |
| <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix> | |
| <div class="md-search-result" data-md-component="search-result"> | |
| <div class="md-search-result__meta"> | |
| Suche wird initialisiert | |
| </div> | |
| <ol class="md-search-result__list" role="presentation"></ol> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="md-header__source"> | |
| <a href="https://github.com/fastapi/fastapi" title="Zum Repository" class="md-source" data-md-component="source"> | |
| <div class="md-source__icon md-icon"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1M496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2m-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3m-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1"/></svg> | |
| </div> | |
| <div class="md-source__repository"> | |
| fastapi/fastapi | |
| </div> | |
| </a> | |
| </div> | |
| </nav> | |
| <nav class="md-tabs" aria-label="Hauptnavigation" data-md-component="tabs"> | |
| <div class="md-grid"> | |
| <ul class="md-tabs__list"> | |
| <li class="md-tabs__item md-tabs__item--active"> | |
| <a href="." class="md-tabs__link"> | |
| FastAPI | |
| </a> | |
| </li> | |
| <li class="md-tabs__item"> | |
| <a href="features/" class="md-tabs__link"> | |
| Merkmale | |
| </a> | |
| </li> | |
| <li class="md-tabs__item"> | |
| <a href="learn/" class="md-tabs__link"> | |
| Lernen | |
| </a> | |
| </li> | |
| <li class="md-tabs__item"> | |
| <a href="reference/" class="md-tabs__link"> | |
| Reference | |
| </a> | |
| </li> | |
| <li class="md-tabs__item"> | |
| <a href="fastapi-people/" class="md-tabs__link"> | |
| FastAPI People | |
| </a> | |
| </li> | |
| <li class="md-tabs__item"> | |
| <a href="resources/" class="md-tabs__link"> | |
| Ressourcen | |
| </a> | |
| </li> | |
| <li class="md-tabs__item"> | |
| <a href="about/" class="md-tabs__link"> | |
| Über | |
| </a> | |
| </li> | |
| <li class="md-tabs__item"> | |
| <a href="release-notes/" class="md-tabs__link"> | |
| Release Notes | |
| </a> | |
| </li> | |
| </ul> | |
| </div> | |
| </nav> | |
| </header> | |
| <div class="md-container" data-md-component="container"> | |
| <main class="md-main" data-md-component="main"> | |
| <div class="md-main__inner md-grid"> | |
| <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > | |
| <div class="md-sidebar__scrollwrap"> | |
| <div class="md-sidebar__inner"> | |
| <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> | |
| <label class="md-nav__title" for="__drawer"> | |
| <a href="." title="FastAPI" class="md-nav__button md-logo" aria-label="FastAPI" data-md-component="logo"> | |
| <img src="img/icon-white.svg" alt="logo"> | |
| </a> | |
| FastAPI | |
| </label> | |
| <div class="md-nav__source"> | |
| <a href="https://github.com/fastapi/fastapi" title="Zum Repository" class="md-source" data-md-component="source"> | |
| <div class="md-source__icon md-icon"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1M496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2m-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3m-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1"/></svg> | |
| </div> | |
| <div class="md-source__repository"> | |
| fastapi/fastapi | |
| </div> | |
| </a> | |
| </div> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item md-nav__item--active"> | |
| <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> | |
| <label class="md-nav__link md-nav__link--active" for="__toc"> | |
| <span class="md-ellipsis"> | |
| FastAPI | |
| </span> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| <a href="." class="md-nav__link md-nav__link--active"> | |
| <span class="md-ellipsis"> | |
| FastAPI | |
| </span> | |
| </a> | |
| <nav class="md-nav md-nav--secondary" aria-label="Inhaltsverzeichnis"> | |
| <label class="md-nav__title" for="__toc"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Inhaltsverzeichnis | |
| </label> | |
| <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="#sponsors" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Sponsoren | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Sponsoren"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#keystone-sponsor" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Keystone-Sponsor | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#gold-and-silver-sponsors" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Gold- und Silber-Sponsoren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#opinions" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Meinungen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#fastapi-mini-documentary" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI Mini-Dokumentarfilm | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#typer-the-fastapi-of-clis" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <strong>Typer</strong>, das FastAPI der CLIs | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#requirements" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Anforderungen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#installation" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Installation | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#example" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Beispiel | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Beispiel"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#create-it" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Erstellung | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#run-it" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Starten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#check-it" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Es testen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#interactive-api-docs" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Interaktive API-Dokumentation | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#alternative-api-docs" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Alternative API-Dokumentation | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#example-upgrade" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Beispielaktualisierung | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Beispielaktualisierung"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#interactive-api-docs-upgrade" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Interaktive API-Dokumentation aktualisieren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#alternative-api-docs-upgrade" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Alternative API-Dokumentation aktualisieren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#recap" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Zusammenfassung | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#deploy-your-app-optional" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Ihre App deployen (optional) | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Ihre App deployen (optional)"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#about-fastapi-cloud" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Über FastAPI Cloud | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#deploy-to-other-cloud-providers" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Bei anderen Cloudanbietern deployen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#performance" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Performanz | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#dependencies" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Abhängigkeiten"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#standard-dependencies" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <code>standard</code>-Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#without-standard-dependencies" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Ohne <code>standard</code>-Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#without-fastapi-cloud-cli" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Ohne <code>fastapi-cloud-cli</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#additional-optional-dependencies" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Zusätzliche optionale Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#license" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Lizenz | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="features/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Merkmale | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="learn/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Lernen | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_3"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Lernen | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="python-types/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Einführung in Python-Typen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="async/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Nebenläufigkeit und async / await | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="environment-variables/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Umgebungsvariablen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="virtual-environments/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Virtuelle Umgebungen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="tutorial/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Tutorial – Benutzerhandbuch | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_3_6"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Tutorial – Benutzerhandbuch | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/first-steps/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Erste Schritte | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/path-params/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Pfad-Parameter | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/query-params/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Query-Parameter | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/body/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Requestbody | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/query-params-str-validations/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Query-Parameter und String-Validierungen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/path-params-numeric-validations/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Pfad-Parameter und Validierung von Zahlen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/query-param-models/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Query-Parameter-Modelle | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/body-multiple-params/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Body – Mehrere Parameter | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/body-fields/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Body – Felder | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/body-nested-models/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Body – Verschachtelte Modelle | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/schema-extra-example/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Beispiel-Request-Daten deklarieren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/extra-data-types/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Zusätzliche Datentypen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/cookie-params/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Cookie-Parameter | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/header-params/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Header-Parameter | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/cookie-param-models/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Cookie-Parameter-Modelle | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/header-param-models/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Header-Parameter-Modelle | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/response-model/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Responsemodell – Rückgabetyp | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/extra-models/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Extramodelle | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/response-status-code/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Response-Statuscode | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/request-forms/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Formulardaten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/request-form-models/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Formularmodelle | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/request-files/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Dateien im Request | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/request-forms-and-files/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Formulardaten und Dateien im Request | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/handling-errors/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Fehler behandeln | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/path-operation-configuration/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Pfadoperation-Konfiguration | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/encoder/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| JSON-kompatibler Encoder | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/body-updates/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Body – Aktualisierungen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_29" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="tutorial/dependencies/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Abhängigkeiten | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_3_6_29" id="__nav_3_6_29_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_29_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_3_6_29"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Abhängigkeiten | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/dependencies/classes-as-dependencies/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Klassen als Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/dependencies/sub-dependencies/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Unterabhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/dependencies/dependencies-in-path-operation-decorators/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Abhängigkeiten in Pfadoperation-Dekoratoren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/dependencies/global-dependencies/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Globale Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/dependencies/dependencies-with-yield/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Abhängigkeiten mit <code>yield</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_30" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="tutorial/security/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Sicherheit | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_3_6_30" id="__nav_3_6_30_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_30_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_3_6_30"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Sicherheit | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/security/first-steps/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Sicherheit – Erste Schritte | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/security/get-current-user/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Aktuellen Benutzer abrufen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/security/simple-oauth2/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Einfaches OAuth2 mit Password und Bearer | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/security/oauth2-jwt/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| OAuth2 mit Passwort (und Hashing), Bearer mit JWT-Tokens | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/middleware/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Middleware | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/cors/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| CORS (Cross-Origin Resource Sharing) | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/sql-databases/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| SQL (Relationale) Datenbanken | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/bigger-applications/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Größere Anwendungen – mehrere Dateien | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/stream-json-lines/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| JSON Lines streamen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/server-sent-events/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Server-Sent Events (SSE) | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/background-tasks/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Hintergrundtasks | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/metadata/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Metadaten und Dokumentations-URLs | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/static-files/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Statische Dateien | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/testing/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Testen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="tutorial/debugging/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Debugging | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="advanced/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Handbuch für fortgeschrittene Benutzer | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_3_7" id="__nav_3_7_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_7_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_3_7"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Handbuch für fortgeschrittene Benutzer | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="advanced/stream-data/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Daten streamen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/path-operation-advanced-configuration/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Fortgeschrittene Konfiguration der Pfadoperation | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/additional-status-codes/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Zusätzliche Statuscodes | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/response-directly/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Eine Response direkt zurückgeben | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/custom-response/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Benutzerdefinierte Response – HTML, Stream, Datei, andere | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/additional-responses/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Zusätzliche Responses in OpenAPI | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/response-cookies/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Response-Cookies | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/response-headers/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Response-Header | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/response-change-status-code/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Response – Statuscode ändern | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/advanced-dependencies/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Fortgeschrittene Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_12" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="advanced/security/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Fortgeschrittene Sicherheit | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_3_7_12" id="__nav_3_7_12_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_12_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_3_7_12"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Fortgeschrittene Sicherheit | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="advanced/security/oauth2-scopes/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| OAuth2-Scopes | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/security/http-basic-auth/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| HTTP Basic Auth | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/using-request-directly/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Den Request direkt verwenden | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/dataclasses/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Datenklassen verwenden | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/middleware/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Fortgeschrittene Middleware | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/sub-applications/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Unteranwendungen – Mounts | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/behind-a-proxy/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Hinter einem Proxy | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/templates/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Templates | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/websockets/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| WebSockets | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/events/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Lifespan-Events | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/testing-websockets/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| WebSockets testen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/testing-events/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Events testen: Lifespan und Startup – Shutdown | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/testing-dependencies/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Testen mit Überschreibungen für Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/async-tests/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Asynchrone Tests | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/settings/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Einstellungen und Umgebungsvariablen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/openapi-callbacks/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| OpenAPI-Callbacks | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/openapi-webhooks/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| OpenAPI Webhooks | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/wsgi/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| WSGI inkludieren – Flask, Django und andere | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/generate-clients/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| SDKs generieren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/advanced-python-types/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Fortgeschrittene Python-Typen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/json-base64-bytes/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| JSON mit Bytes als base64 | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="advanced/strict-content-type/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Strikte Content-Type-Prüfung | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="fastapi-cli/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI CLI | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="editor-support/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Editor-Unterstützung | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_10" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="deployment/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Deployment | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_3_10" id="__nav_3_10_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_10_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_3_10"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Deployment | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="deployment/versions/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Über FastAPI-Versionen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="deployment/fastapicloud/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI Cloud | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="deployment/https/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Über HTTPS | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="deployment/manually/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Einen Server manuell ausführen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="deployment/concepts/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Deployment-Konzepte | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="deployment/cloud/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI bei Cloudanbietern deployen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="deployment/server-workers/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Serverworker – Uvicorn mit Workern | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="deployment/docker/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI in Containern – Docker | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_11" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="how-to/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| How-To – Rezepte | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_3_11" id="__nav_3_11_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_11_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_3_11"> | |
| <span class="md-nav__icon md-icon"></span> | |
| How-To – Rezepte | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="how-to/general/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Allgemeines – How-To – Rezepte | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/migrate-from-pydantic-v1-to-pydantic-v2/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Von Pydantic v1 zu Pydantic v2 migrieren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/graphql/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| GraphQL | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/custom-request-and-route/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Benutzerdefinierte Request- und APIRoute-Klasse | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/conditional-openapi/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Bedingte OpenAPI | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/extending-openapi/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| OpenAPI erweitern | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/separate-openapi-schemas/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Separate OpenAPI-Schemas für Eingabe und Ausgabe oder nicht | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/custom-docs-ui-assets/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Statische Assets der Dokumentationsoberfläche (Selbst-Hosting) | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/configure-swagger-ui/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Swagger-Oberfläche konfigurieren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/testing-database/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Eine Datenbank testen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="how-to/authentication-error-status-code/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Alte 403-Authentifizierungsfehler-Statuscodes verwenden | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="reference/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Reference | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_4"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Reference | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="reference/fastapi/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <code>FastAPI</code> class | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/parameters/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Request Parameters | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/status/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Status Codes | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/uploadfile/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <code>UploadFile</code> class | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/exceptions/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Exceptions - <code>HTTPException</code> and <code>WebSocketException</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/dependencies/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Dependencies - <code>Depends()</code> and <code>Security()</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/apirouter/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <code>APIRouter</code> class | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/background/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Background Tasks - <code>BackgroundTasks</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/request/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <code>Request</code> class | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/websockets/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| WebSockets | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/httpconnection/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <code>HTTPConnection</code> class | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/response/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <code>Response</code> class | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/responses/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Custom Response Classes - File, HTML, Redirect, Streaming, etc. | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/middleware/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Middleware | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_16" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="reference/openapi/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| OpenAPI | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_4_16" id="__nav_4_16_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_16_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_4_16"> | |
| <span class="md-nav__icon md-icon"></span> | |
| OpenAPI | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="reference/openapi/docs/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| OpenAPI <code>docs</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/openapi/models/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| OpenAPI <code>models</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/security/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Security Tools | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/encoders/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Encoders - <code>jsonable_encoder</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/staticfiles/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Static Files - <code>StaticFiles</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/templating/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Templating - <code>Jinja2Templates</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="reference/testclient/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Test Client - <code>TestClient</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="fastapi-people/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI People | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="resources/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Ressourcen | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_6"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Ressourcen | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="help-fastapi/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI helfen – Hilfe erhalten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="contributing/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Development - Contributing | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="project-generation/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Full Stack FastAPI Template | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="external-links/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| External Links | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="newsletter/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI and friends newsletter | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="management-tasks/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Repository Management Tasks | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item md-nav__item--nested"> | |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" > | |
| <div class="md-nav__link md-nav__container"> | |
| <a href="about/" class="md-nav__link "> | |
| <span class="md-ellipsis"> | |
| Über | |
| </span> | |
| </a> | |
| <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0"> | |
| <span class="md-nav__icon md-icon"></span> | |
| </label> | |
| </div> | |
| <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false"> | |
| <label class="md-nav__title" for="__nav_7"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Über | |
| </label> | |
| <ul class="md-nav__list" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="alternatives/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Alternativen, Inspiration und Vergleiche | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="history-design-future/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Geschichte, Design und Zukunft | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="benchmarks/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Benchmarks | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="management/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Repository Management | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="release-notes/" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Release Notes | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > | |
| <div class="md-sidebar__scrollwrap"> | |
| <div class="md-sidebar__inner"> | |
| <nav class="md-nav md-nav--secondary" aria-label="Inhaltsverzeichnis"> | |
| <label class="md-nav__title" for="__toc"> | |
| <span class="md-nav__icon md-icon"></span> | |
| Inhaltsverzeichnis | |
| </label> | |
| <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> | |
| <li class="md-nav__item"> | |
| <a href="#sponsors" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Sponsoren | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Sponsoren"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#keystone-sponsor" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Keystone-Sponsor | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#gold-and-silver-sponsors" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Gold- und Silber-Sponsoren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#opinions" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Meinungen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#fastapi-mini-documentary" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| FastAPI Mini-Dokumentarfilm | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#typer-the-fastapi-of-clis" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <strong>Typer</strong>, das FastAPI der CLIs | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#requirements" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Anforderungen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#installation" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Installation | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#example" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Beispiel | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Beispiel"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#create-it" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Erstellung | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#run-it" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Starten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#check-it" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Es testen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#interactive-api-docs" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Interaktive API-Dokumentation | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#alternative-api-docs" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Alternative API-Dokumentation | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#example-upgrade" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Beispielaktualisierung | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Beispielaktualisierung"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#interactive-api-docs-upgrade" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Interaktive API-Dokumentation aktualisieren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#alternative-api-docs-upgrade" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Alternative API-Dokumentation aktualisieren | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#recap" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Zusammenfassung | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#deploy-your-app-optional" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Ihre App deployen (optional) | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Ihre App deployen (optional)"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#about-fastapi-cloud" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Über FastAPI Cloud | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#deploy-to-other-cloud-providers" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Bei anderen Cloudanbietern deployen | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#performance" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Performanz | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#dependencies" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| <nav class="md-nav" aria-label="Abhängigkeiten"> | |
| <ul class="md-nav__list"> | |
| <li class="md-nav__item"> | |
| <a href="#standard-dependencies" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| <code>standard</code>-Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#without-standard-dependencies" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Ohne <code>standard</code>-Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#without-fastapi-cloud-cli" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Ohne <code>fastapi-cloud-cli</code> | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#additional-optional-dependencies" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Zusätzliche optionale Abhängigkeiten | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li class="md-nav__item"> | |
| <a href="#license" class="md-nav__link"> | |
| <span class="md-ellipsis"> | |
| <span class="md-typeset"> | |
| Lizenz | |
| </span> | |
| </span> | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="md-content" data-md-component="content"> | |
| <article class="md-content__inner md-typeset"> | |
| <h1 id="fastapi">FastAPI<a class="headerlink" data-preview="" href="#fastapi" title="Permanent link">¶</a></h1> | |
| <details> | |
| <summary>🌐 Übersetzung durch KI und Menschen</summary> | |
| <p>Diese Übersetzung wurde von KI erstellt, angeleitet von Menschen. 🤝</p> | |
| <p>Sie könnte Fehler enthalten, etwa Missverständnisse des ursprünglichen Sinns oder unnatürliche Formulierungen, usw. 🤖</p> | |
| <p>Sie können diese Übersetzung verbessern, indem Sie <a href="https://fastapi.tiangolo.com/de/contributing/#translations">uns helfen, die KI-LLM besser anzuleiten</a>.</p> | |
| <p><a href="https://fastapi.tiangolo.com/">Englische Version</a></p> | |
| </details> | |
| <style> | |
| .md-content .md-typeset h1 { display: none; } | |
| </style> | |
| <p align="center"> | |
| <a href="https://fastapi.tiangolo.com/de"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a> | |
| </p> | |
| <p align="center"> | |
| <em>FastAPI-Framework, hohe Performanz, leicht zu lernen, schnell zu entwickeln, produktionsreif</em> | |
| </p> | |
| <p align="center"> | |
| <a href="https://github.com/fastapi/fastapi/actions?query=workflow%3ATest+event%3Apush+branch%3Amaster"> | |
| <img src="https://github.com/fastapi/fastapi/actions/workflows/test.yml/badge.svg?event=push&branch=master" alt="Test"> | |
| </a> | |
| <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/fastapi"> | |
| <img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/fastapi.svg" alt="Testabdeckung"> | |
| </a> | |
| <a href="https://pypi.org/project/fastapi"> | |
| <img src="https://img.shields.io/pypi/v/fastapi?color=%2334D058&label=pypi%20package" alt="Package-Version"> | |
| </a> | |
| <a href="https://pypi.org/project/fastapi"> | |
| <img src="https://img.shields.io/pypi/pyversions/fastapi.svg?color=%2334D058" alt="Unterstützte Python-Versionen"> | |
| </a> | |
| </p> | |
| <hr /> | |
| <p><strong>Dokumentation</strong>: <a href="https://fastapi.tiangolo.com/de">https://fastapi.tiangolo.com/de</a></p> | |
| <p><strong>Quellcode</strong>: <a href="https://github.com/fastapi/fastapi">https://github.com/fastapi/fastapi</a></p> | |
| <hr /> | |
| <p>FastAPI ist ein modernes, schnelles (hoch performantes) Webframework zur Erstellung von APIs mit Python auf Basis von Standard-Python-Typhinweisen.</p> | |
| <p>Seine Schlüssel-Merkmale sind:</p> | |
| <ul> | |
| <li><strong>Schnell</strong>: Sehr hohe Performanz, auf Augenhöhe mit <strong>NodeJS</strong> und <strong>Go</strong> (dank Starlette und Pydantic). <a data-preview="" href="#performance">Eines der schnellsten verfügbaren Python-Frameworks</a>.</li> | |
| <li><strong>Schnell zu entwickeln</strong>: Erhöhen Sie die Geschwindigkeit bei der Entwicklung von Features um etwa 200 % bis 300 %. *</li> | |
| <li><strong>Weniger Bugs</strong>: Verringern Sie die von Menschen (Entwicklern) verursachten Fehler um etwa 40 %. *</li> | |
| <li><strong>Intuitiv</strong>: Hervorragende Editor-Unterstützung. <dfn title="auch bekannt als Auto-Complete, Autovervollständigung, IntelliSense">Code-Vervollständigung</dfn> überall. Weniger Zeit mit Debuggen verbringen.</li> | |
| <li><strong>Einfach</strong>: So konzipiert, dass es einfach zu benutzen und zu erlernen ist. Weniger Zeit mit dem Lesen von Dokumentation verbringen.</li> | |
| <li><strong>Kurz</strong>: Minimieren Sie die Verdoppelung von Code. Mehrere Features aus jeder Parameterdeklaration. Weniger Bugs.</li> | |
| <li><strong>Robust</strong>: Erhalten Sie produktionsreifen Code. Mit automatischer, interaktiver Dokumentation.</li> | |
| <li><strong>Standards-basiert</strong>: Basierend auf (und vollständig kompatibel mit) den offenen Standards für APIs: <a href="https://github.com/OAI/OpenAPI-Specification">OpenAPI</a> (früher bekannt als Swagger) und <a href="https://json-schema.org/">JSON Schema</a>.</li> | |
| </ul> | |
| <p><small>* Schätzung basierend auf Tests, die von einem internen Entwicklungsteam durchgeführt wurden, das Produktionsanwendungen erstellt.</small></p> | |
| <h2 id="sponsors">Sponsoren<a class="headerlink" data-preview="" href="#sponsors" title="Permanent link">¶</a></h2> | |
| <!-- sponsors --> | |
| <h3 id="keystone-sponsor">Keystone-Sponsor<a class="headerlink" data-preview="" href="#keystone-sponsor" title="Permanent link">¶</a></h3> | |
| <p><a href="https://fastapicloud.com" title="FastAPI Cloud. By the same team behind FastAPI. You code. We Cloud."><img src="https://fastapi.tiangolo.com/img/sponsors/fastapicloud.png" style="border-radius:15px"></a></p> | |
| <h3 id="gold-and-silver-sponsors">Gold- und Silber-Sponsoren<a class="headerlink" data-preview="" href="#gold-and-silver-sponsors" title="Permanent link">¶</a></h3> | |
| <p><a href="https://blockbee.io?ref=fastapi" title="BlockBee Cryptocurrency Payment Gateway"><img src="https://fastapi.tiangolo.com/img/sponsors/blockbee.png" style="border-radius:15px"></a> | |
| <a href="https://github.com/scalar/scalar/?utm_source=fastapi&utm_medium=website&utm_campaign=main-badge" title="Scalar: Beautiful Open-Source API References from Swagger/OpenAPI files"><img src="https://fastapi.tiangolo.com/img/sponsors/scalar.svg" style="border-radius:15px"></a> | |
| <a href="https://www.propelauth.com/?utm_source=fastapi&utm_campaign=1223&utm_medium=mainbadge" title="Auth, user management and more for your B2B product"><img src="https://fastapi.tiangolo.com/img/sponsors/propelauth.png" style="border-radius:15px"></a> | |
| <a href="https://liblab.com?utm_source=fastapi" title="liblab - Generate SDKs from FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/liblab.png" style="border-radius:15px"></a> | |
| <a href="https://docs.render.com/deploy-fastapi?utm_source=deploydoc&utm_medium=referral&utm_campaign=fastapi" title="Deploy & scale any full-stack web app on Render. Focus on building apps, not infra."><img src="https://fastapi.tiangolo.com/img/sponsors/render.svg" style="border-radius:15px"></a> | |
| <a href="https://www.coderabbit.ai/?utm_source=fastapi&utm_medium=badge&utm_campaign=fastapi" title="Cut Code Review Time & Bugs in Half with CodeRabbit"><img src="https://fastapi.tiangolo.com/img/sponsors/coderabbit.png" style="border-radius:15px"></a> | |
| <a href="https://subtotal.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=open-source" title="The Gold Standard in Retail Account Linking"><img src="https://fastapi.tiangolo.com/img/sponsors/subtotal.svg" style="border-radius:15px"></a> | |
| <a href="https://docs.railway.com/guides/fastapi?utm_medium=integration&utm_source=docs&utm_campaign=fastapi" title="Deploy enterprise applications at startup speed"><img src="https://fastapi.tiangolo.com/img/sponsors/railway.png" style="border-radius:15px"></a> | |
| <a href="https://serpapi.com/?utm_source=fastapi_website" title="SerpApi: Web Search API"><img src="https://fastapi.tiangolo.com/img/sponsors/serpapi.png" style="border-radius:15px"></a> | |
| <a href="https://www.greptile.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=fastapi_sponsor_page" title="Greptile: The AI Code Reviewer"><img src="https://fastapi.tiangolo.com/img/sponsors/greptile.png" style="border-radius:15px"></a> | |
| <a href="https://databento.com/?utm_source=fastapi&utm_medium=sponsor&utm_content=display" title="Pay as you go for market data"><img src="https://fastapi.tiangolo.com/img/sponsors/databento.svg" style="border-radius:15px"></a> | |
| <a href="https://www.svix.com/" title="Svix - Webhooks as a service"><img src="https://fastapi.tiangolo.com/img/sponsors/svix.svg" style="border-radius:15px"></a> | |
| <a href="https://www.stainlessapi.com/?utm_source=fastapi&utm_medium=referral" title="Stainless | Generate best-in-class SDKs"><img src="https://fastapi.tiangolo.com/img/sponsors/stainless.png" style="border-radius:15px"></a> | |
| <a href="https://www.permit.io/blog/implement-authorization-in-fastapi?utm_source=github&utm_medium=referral&utm_campaign=fastapi" title="Fine-Grained Authorization for FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/permit.png" style="border-radius:15px"></a> | |
| <a href="https://www.interviewpal.com/?utm_source=fastapi&utm_medium=open-source&utm_campaign=dev-hiring" title="InterviewPal - AI Interview Coach for Engineers and Devs"><img src="https://fastapi.tiangolo.com/img/sponsors/interviewpal.png" style="border-radius:15px"></a> | |
| <a href="https://dribia.com/en/" title="Dribia - Data Science within your reach"><img src="https://fastapi.tiangolo.com/img/sponsors/dribia.png" style="border-radius:15px"></a></p> | |
| <!-- /sponsors --> | |
| <p><a href="https://fastapi.tiangolo.com/de/fastapi-people/#sponsors">Andere Sponsoren</a></p> | |
| <h2 id="opinions">Meinungen<a class="headerlink" data-preview="" href="#opinions" title="Permanent link">¶</a></h2> | |
| <p>„<em>[...] Ich verwende <strong>FastAPI</strong> heutzutage sehr oft. [...] Ich habe tatsächlich vor, es für alle <strong>ML-Services meines Teams bei Microsoft</strong> zu verwenden. Einige davon werden in das Kernprodukt <strong>Windows</strong> und einige <strong>Office</strong>-Produkte integriert.</em>“</p> | |
| <div style="text-align: right; margin-right: 10%;">Kabir Khan – <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26"><small>(Ref.)</small></a></div> | |
| <hr /> | |
| <p>„<em>Wir haben die <strong>FastAPI</strong>-Bibliothek übernommen, um einen <strong>REST</strong>-Server zu erstellen, der für <strong>Vorhersagen</strong> abgefragt werden kann. [für Ludwig]</em>“</p> | |
| <div style="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin, und Sai Sumanth Miryala – <strong>Uber</strong> <a href="https://eng.uber.com/ludwig-v0-2/"><small>(Ref.)</small></a></div> | |
| <hr /> | |
| <p>„<em><strong>Netflix</strong> freut sich, die Open-Source-Veröffentlichung unseres <strong>Krisenmanagement</strong>-Orchestrierung-Frameworks bekannt zu geben: <strong>Dispatch</strong>! [erstellt mit <strong>FastAPI</strong>]</em>“</p> | |
| <div style="text-align: right; margin-right: 10%;">Kevin Glisson, Marc Vilanova, Forest Monsen – <strong>Netflix</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072"><small>(Ref.)</small></a></div> | |
| <hr /> | |
| <p>„<em>Ich bin hellauf begeistert von <strong>FastAPI</strong>. Es macht so viel Spaß!</em>“</p> | |
| <div style="text-align: right; margin-right: 10%;">Brian Okken – <strong>[Python Bytes](https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855) Podcast-Host</strong> <a href="https://x.com/brianokken/status/1112220079972728832"><small>(Ref.)</small></a></div> | |
| <hr /> | |
| <p>„<em>Ehrlich, was Du gebaut hast, sieht super solide und poliert aus. In vielerlei Hinsicht ist es so, wie ich <strong>Hug</strong> haben wollte – es ist wirklich inspirierend, jemanden so etwas bauen zu sehen.</em>“</p> | |
| <div style="text-align: right; margin-right: 10%;">Timothy Crosley – <strong>[Hug](https://github.com/hugapi/hug)-Autor</strong> <a href="https://news.ycombinator.com/item?id=19455465"><small>(Ref.)</small></a></div> | |
| <hr /> | |
| <p>„<em>Wenn Sie ein <strong>modernes Framework</strong> zum Erstellen von REST-APIs erlernen möchten, schauen Sie sich <strong>FastAPI</strong> an. [...] Es ist schnell, einfach zu verwenden und leicht zu lernen [...]</em>“</p> | |
| <p>„<em>Wir haben zu <strong>FastAPI</strong> für unsere <strong>APIs</strong> gewechselt [...] Ich denke, es wird Ihnen gefallen [...]</em>“</p> | |
| <div style="text-align: right; margin-right: 10%;">Ines Montani – Matthew Honnibal – <strong>[Explosion AI](https://explosion.ai)-Gründer – [spaCy](https://spacy.io)-Autoren</strong> <a href="https://x.com/_inesmontani/status/1144173225322143744"><small>(Ref.)</small></a> – <a href="https://x.com/honnibal/status/1144031421859655680"><small>(Ref.)</small></a></div> | |
| <hr /> | |
| <p>„<em>Falls irgendjemand eine Produktions-Python-API erstellen möchte, kann ich <strong>FastAPI</strong> wärmstens empfehlen. Es ist <strong>wunderschön konzipiert</strong>, <strong>einfach zu verwenden</strong> und <strong>hoch skalierbar</strong>; es ist zu einer <strong>Schlüsselkomponente</strong> unserer API-First-Entwicklungsstrategie geworden und treibt viele Automatisierungen und Services an, wie etwa unseren Virtual TAC Engineer.</em>“</p> | |
| <div style="text-align: right; margin-right: 10%;">Deon Pillsbury – <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/"><small>(Ref.)</small></a></div> | |
| <hr /> | |
| <h2 id="fastapi-mini-documentary">FastAPI Mini-Dokumentarfilm<a class="headerlink" data-preview="" href="#fastapi-mini-documentary" title="Permanent link">¶</a></h2> | |
| <p>Es gibt einen <a href="https://www.youtube.com/watch?v=mpR8ngthqiE">FastAPI-Mini-Dokumentarfilm</a>, veröffentlicht Ende 2025, Sie können ihn online ansehen:</p> | |
| <p><a href="https://www.youtube.com/watch?v=mpR8ngthqiE"><img src="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg" alt="FastAPI Mini-Dokumentarfilm"></a></p> | |
| <h2 id="typer-the-fastapi-of-clis"><strong>Typer</strong>, das FastAPI der CLIs<a class="headerlink" data-preview="" href="#typer-the-fastapi-of-clis" title="Permanent link">¶</a></h2> | |
| <p><a href="https://typer.tiangolo.com"><img src="https://typer.tiangolo.com/img/logo-margin/logo-margin-vector.svg" style="width: 20%;"></a></p> | |
| <p>Wenn Sie eine <abbr title="Command Line Interface - Kommandozeilen-Schnittstelle">CLI</abbr>-Anwendung für das Terminal erstellen, anstelle einer Web-API, schauen Sie sich <a href="https://typer.tiangolo.com/"><strong>Typer</strong></a> an.</p> | |
| <p><strong>Typer</strong> ist die kleine Schwester von FastAPI. Und es soll das <strong>FastAPI der CLIs</strong> sein. ⌨️ 🚀</p> | |
| <h2 id="requirements">Anforderungen<a class="headerlink" data-preview="" href="#requirements" title="Permanent link">¶</a></h2> | |
| <p>FastAPI steht auf den Schultern von Giganten:</p> | |
| <ul> | |
| <li><a href="https://www.starlette.dev/">Starlette</a> für die Webanteile.</li> | |
| <li><a href="https://docs.pydantic.dev/">Pydantic</a> für die Datenanteile.</li> | |
| </ul> | |
| <h2 id="installation">Installation<a class="headerlink" data-preview="" href="#installation" title="Permanent link">¶</a></h2> | |
| <p>Erstellen und aktivieren Sie eine <a href="https://fastapi.tiangolo.com/de/virtual-environments/">virtuelle Umgebung</a> und installieren Sie dann FastAPI:</p> | |
| <div class="termy"> | |
| <div class="highlight"><pre><span></span><code><span id="__span-0-1"><span class="gp">$ </span>pip<span class="w"> </span>install<span class="w"> </span><span class="s2">"fastapi[standard]"</span> | |
| </span><span id="__span-0-2"> | |
| </span><span id="__span-0-3"><span class="go">---> 100%</span> | |
| </span></code></pre></div> | |
| </div> | |
| <p><strong>Hinweis</strong>: Stellen Sie sicher, dass Sie <code>"fastapi[standard]"</code> in Anführungszeichen setzen, damit es in allen Terminals funktioniert.</p> | |
| <h2 id="example">Beispiel<a class="headerlink" data-preview="" href="#example" title="Permanent link">¶</a></h2> | |
| <h3 id="create-it">Erstellung<a class="headerlink" data-preview="" href="#create-it" title="Permanent link">¶</a></h3> | |
| <p>Erstellen Sie eine Datei <code>main.py</code> mit:</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-1-1"><span class="kn">from</span><span class="w"> </span><span class="nn">fastapi</span><span class="w"> </span><span class="kn">import</span> <span class="n">FastAPI</span> | |
| </span><span id="__span-1-2"> | |
| </span><span id="__span-1-3"><span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span> | |
| </span><span id="__span-1-4"> | |
| </span><span id="__span-1-5"> | |
| </span><span id="__span-1-6"><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)</span> | |
| </span><span id="__span-1-7"><span class="k">def</span><span class="w"> </span><span class="nf">read_root</span><span class="p">():</span> | |
| </span><span id="__span-1-8"> <span class="k">return</span> <span class="p">{</span><span class="s2">"Hello"</span><span class="p">:</span> <span class="s2">"World"</span><span class="p">}</span> | |
| </span><span id="__span-1-9"> | |
| </span><span id="__span-1-10"> | |
| </span><span id="__span-1-11"><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/items/</span><span class="si">{item_id}</span><span class="s2">"</span><span class="p">)</span> | |
| </span><span id="__span-1-12"><span class="k">def</span><span class="w"> </span><span class="nf">read_item</span><span class="p">(</span><span class="n">item_id</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">q</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> | |
| </span><span id="__span-1-13"> <span class="k">return</span> <span class="p">{</span><span class="s2">"item_id"</span><span class="p">:</span> <span class="n">item_id</span><span class="p">,</span> <span class="s2">"q"</span><span class="p">:</span> <span class="n">q</span><span class="p">}</span> | |
| </span></code></pre></div> | |
| <details> | |
| <summary>Oder verwenden Sie <code>async def</code> ...</summary> | |
| <p>Wenn Ihr Code <code>async</code> / <code>await</code> verwendet, benutzen Sie <code>async def</code>:</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-2-1"><span class="kn">from</span><span class="w"> </span><span class="nn">fastapi</span><span class="w"> </span><span class="kn">import</span> <span class="n">FastAPI</span> | |
| </span><span id="__span-2-2"> | |
| </span><span id="__span-2-3"><span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span> | |
| </span><span id="__span-2-4"> | |
| </span><span id="__span-2-5"> | |
| </span><span id="__span-2-6"><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)</span> | |
| </span><span id="__span-2-7"><span class="hll"><span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">read_root</span><span class="p">():</span> | |
| </span></span><span id="__span-2-8"> <span class="k">return</span> <span class="p">{</span><span class="s2">"Hello"</span><span class="p">:</span> <span class="s2">"World"</span><span class="p">}</span> | |
| </span><span id="__span-2-9"> | |
| </span><span id="__span-2-10"> | |
| </span><span id="__span-2-11"><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/items/</span><span class="si">{item_id}</span><span class="s2">"</span><span class="p">)</span> | |
| </span><span id="__span-2-12"><span class="hll"><span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">read_item</span><span class="p">(</span><span class="n">item_id</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">q</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> | |
| </span></span><span id="__span-2-13"> <span class="k">return</span> <span class="p">{</span><span class="s2">"item_id"</span><span class="p">:</span> <span class="n">item_id</span><span class="p">,</span> <span class="s2">"q"</span><span class="p">:</span> <span class="n">q</span><span class="p">}</span> | |
| </span></code></pre></div> | |
| <p><strong>Hinweis</strong>:</p> | |
| <p>Wenn Sie das nicht kennen, schauen Sie sich den Abschnitt <em>„In Eile?“</em> über <a href="https://fastapi.tiangolo.com/de/async/#in-a-hurry"><code>async</code> und <code>await</code> in der Dokumentation</a> an.</p> | |
| </details> | |
| <h3 id="run-it">Starten<a class="headerlink" data-preview="" href="#run-it" title="Permanent link">¶</a></h3> | |
| <p>Starten Sie den Server mit:</p> | |
| <div class="termy"> | |
| <div class="highlight"><pre><span></span><code><span id="__span-3-1"><span class="gp">$ </span>fastapi<span class="w"> </span>dev | |
| </span><span id="__span-3-2"> | |
| </span><span id="__span-3-3"><span class="go"> ╭────────── FastAPI CLI - Development mode ───────────╮</span> | |
| </span><span id="__span-3-4"><span class="go"> │ │</span> | |
| </span><span id="__span-3-5"><span class="go"> │ Serving at: http://127.0.0.1:8000 │</span> | |
| </span><span id="__span-3-6"><span class="go"> │ │</span> | |
| </span><span id="__span-3-7"><span class="go"> │ API docs: http://127.0.0.1:8000/docs │</span> | |
| </span><span id="__span-3-8"><span class="go"> │ │</span> | |
| </span><span id="__span-3-9"><span class="go"> │ Running in development mode, for production use: │</span> | |
| </span><span id="__span-3-10"><span class="go"> │ │</span> | |
| </span><span id="__span-3-11"><span class="go"> │ fastapi run │</span> | |
| </span><span id="__span-3-12"><span class="go"> │ │</span> | |
| </span><span id="__span-3-13"><span class="go"> ╰─────────────────────────────────────────────────────╯</span> | |
| </span><span id="__span-3-14"> | |
| </span><span id="__span-3-15"><span class="go">INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp']</span> | |
| </span><span id="__span-3-16"><span class="go">INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)</span> | |
| </span><span id="__span-3-17"><span class="go">INFO: Started reloader process [2248755] using WatchFiles</span> | |
| </span><span id="__span-3-18"><span class="go">INFO: Started server process [2248757]</span> | |
| </span><span id="__span-3-19"><span class="go">INFO: Waiting for application startup.</span> | |
| </span><span id="__span-3-20"><span class="go">INFO: Application startup complete.</span> | |
| </span></code></pre></div> | |
| </div> | |
| <details> | |
| <summary>Über den Befehl <code>fastapi dev</code> ...</summary> | |
| <p>Der Befehl <code>fastapi dev</code> liest Ihre <code>main.py</code>-Datei, erkennt die <strong>FastAPI</strong>-App darin und startet einen Server mit <a href="https://www.uvicorn.dev">Uvicorn</a>.</p> | |
| <p>Standardmäßig wird <code>fastapi dev</code> mit aktiviertem Auto-Reload für die lokale Entwicklung gestartet.</p> | |
| <p>Sie können mehr darüber in der <a href="https://fastapi.tiangolo.com/de/fastapi-cli/">FastAPI CLI Dokumentation</a> lesen.</p> | |
| </details> | |
| <h3 id="check-it">Es testen<a class="headerlink" data-preview="" href="#check-it" title="Permanent link">¶</a></h3> | |
| <p>Öffnen Sie Ihren Browser unter <a href="http://127.0.0.1:8000/items/5?q=somequery">http://127.0.0.1:8000/items/5?q=somequery</a>.</p> | |
| <p>Sie sehen die JSON-<abbr title="Response - Antwort: Daten, die der Server zum anfragenden Client zurücksendet">Response</abbr> als:</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-4-1"><span class="p">{</span><span class="nt">"item_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="nt">"q"</span><span class="p">:</span><span class="w"> </span><span class="s2">"somequery"</span><span class="p">}</span> | |
| </span></code></pre></div> | |
| <p>Sie haben bereits eine API erstellt, welche:</p> | |
| <ul> | |
| <li>HTTP-<abbr title="Request - Anfrage: Daten, die der Client zum Server sendet">Requests</abbr> auf den <em>Pfaden</em> <code>/</code> und <code>/items/{item_id}</code> entgegennimmt.</li> | |
| <li>Beide <em>Pfade</em> nehmen <code>GET</code> <em>Operationen</em> (auch bekannt als HTTP-<em>Methoden</em>) entgegen.</li> | |
| <li>Der <em>Pfad</em> <code>/items/{item_id}</code> hat einen <em>Pfad-Parameter</em> <code>item_id</code>, der ein <code>int</code> sein sollte.</li> | |
| <li>Der <em>Pfad</em> <code>/items/{item_id}</code> hat einen optionalen <code>str</code>-<em>Query-Parameter</em> <code>q</code>.</li> | |
| </ul> | |
| <h3 id="interactive-api-docs">Interaktive API-Dokumentation<a class="headerlink" data-preview="" href="#interactive-api-docs" title="Permanent link">¶</a></h3> | |
| <p>Gehen Sie nun auf <a href="http://127.0.0.1:8000/docs">http://127.0.0.1:8000/docs</a>.</p> | |
| <p>Sie sehen die automatische interaktive API-Dokumentation (bereitgestellt von <a href="https://github.com/swagger-api/swagger-ui">Swagger UI</a>):</p> | |
| <p><img alt="Swagger UI" src="https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png" /></p> | |
| <h3 id="alternative-api-docs">Alternative API-Dokumentation<a class="headerlink" data-preview="" href="#alternative-api-docs" title="Permanent link">¶</a></h3> | |
| <p>Und jetzt gehen Sie auf <a href="http://127.0.0.1:8000/redoc">http://127.0.0.1:8000/redoc</a>.</p> | |
| <p>Sie sehen die alternative automatische Dokumentation (bereitgestellt von <a href="https://github.com/Rebilly/ReDoc">ReDoc</a>):</p> | |
| <p><img alt="ReDoc" src="https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png" /></p> | |
| <h2 id="example-upgrade">Beispielaktualisierung<a class="headerlink" data-preview="" href="#example-upgrade" title="Permanent link">¶</a></h2> | |
| <p>Ändern Sie jetzt die Datei <code>main.py</code>, um den <abbr title="Body - Körper, Inhalt: Der eigentliche Inhalt einer Nachricht, nicht die Metadaten">Body</abbr> eines <code>PUT</code>-Requests zu empfangen.</p> | |
| <p>Deklarieren Sie den Body mit Standard-Python-Typen, dank Pydantic.</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-5-1"><span class="kn">from</span><span class="w"> </span><span class="nn">fastapi</span><span class="w"> </span><span class="kn">import</span> <span class="n">FastAPI</span> | |
| </span><span id="__span-5-2"><span class="hll"><span class="kn">from</span><span class="w"> </span><span class="nn">pydantic</span><span class="w"> </span><span class="kn">import</span> <span class="n">BaseModel</span> | |
| </span></span><span id="__span-5-3"> | |
| </span><span id="__span-5-4"><span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span> | |
| </span><span id="__span-5-5"> | |
| </span><span id="__span-5-6"> | |
| </span><span id="__span-5-7"><span class="hll"><span class="k">class</span><span class="w"> </span><span class="nc">Item</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">):</span> | |
| </span></span><span id="__span-5-8"><span class="hll"> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> | |
| </span></span><span id="__span-5-9"><span class="hll"> <span class="n">price</span><span class="p">:</span> <span class="nb">float</span> | |
| </span></span><span id="__span-5-10"><span class="hll"> <span class="n">is_offer</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span> | |
| </span></span><span id="__span-5-11"> | |
| </span><span id="__span-5-12"> | |
| </span><span id="__span-5-13"><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)</span> | |
| </span><span id="__span-5-14"><span class="k">def</span><span class="w"> </span><span class="nf">read_root</span><span class="p">():</span> | |
| </span><span id="__span-5-15"> <span class="k">return</span> <span class="p">{</span><span class="s2">"Hello"</span><span class="p">:</span> <span class="s2">"World"</span><span class="p">}</span> | |
| </span><span id="__span-5-16"> | |
| </span><span id="__span-5-17"> | |
| </span><span id="__span-5-18"><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/items/</span><span class="si">{item_id}</span><span class="s2">"</span><span class="p">)</span> | |
| </span><span id="__span-5-19"><span class="k">def</span><span class="w"> </span><span class="nf">read_item</span><span class="p">(</span><span class="n">item_id</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">q</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> | |
| </span><span id="__span-5-20"> <span class="k">return</span> <span class="p">{</span><span class="s2">"item_id"</span><span class="p">:</span> <span class="n">item_id</span><span class="p">,</span> <span class="s2">"q"</span><span class="p">:</span> <span class="n">q</span><span class="p">}</span> | |
| </span><span id="__span-5-21"> | |
| </span><span id="__span-5-22"> | |
| </span><span id="__span-5-23"><span class="hll"><span class="nd">@app</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="s2">"/items/</span><span class="si">{item_id}</span><span class="s2">"</span><span class="p">)</span> | |
| </span></span><span id="__span-5-24"><span class="hll"><span class="k">def</span><span class="w"> </span><span class="nf">update_item</span><span class="p">(</span><span class="n">item_id</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">item</span><span class="p">:</span> <span class="n">Item</span><span class="p">):</span> | |
| </span></span><span id="__span-5-25"><span class="hll"> <span class="k">return</span> <span class="p">{</span><span class="s2">"item_name"</span><span class="p">:</span> <span class="n">item</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s2">"item_id"</span><span class="p">:</span> <span class="n">item_id</span><span class="p">}</span> | |
| </span></span></code></pre></div> | |
| <p>Der <code>fastapi dev</code>-Server sollte automatisch neu laden.</p> | |
| <h3 id="interactive-api-docs-upgrade">Interaktive API-Dokumentation aktualisieren<a class="headerlink" data-preview="" href="#interactive-api-docs-upgrade" title="Permanent link">¶</a></h3> | |
| <p>Gehen Sie jetzt auf <a href="http://127.0.0.1:8000/docs">http://127.0.0.1:8000/docs</a>.</p> | |
| <ul> | |
| <li>Die interaktive API-Dokumentation wird automatisch aktualisiert, einschließlich des neuen Bodys:</li> | |
| </ul> | |
| <p><img alt="Swagger UI" src="https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png" /></p> | |
| <ul> | |
| <li>Klicken Sie auf den Button „Try it out“, damit können Sie die Parameter ausfüllen und direkt mit der API interagieren:</li> | |
| </ul> | |
| <p><img alt="Swagger UI Interaktion" src="https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png" /></p> | |
| <ul> | |
| <li>Klicken Sie dann auf den Button „Execute“, die Benutzeroberfläche wird mit Ihrer API kommunizieren, die Parameter senden, die Ergebnisse erhalten und sie auf dem Bildschirm anzeigen:</li> | |
| </ul> | |
| <p><img alt="Swagger UI Interaktion" src="https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png" /></p> | |
| <h3 id="alternative-api-docs-upgrade">Alternative API-Dokumentation aktualisieren<a class="headerlink" data-preview="" href="#alternative-api-docs-upgrade" title="Permanent link">¶</a></h3> | |
| <p>Und jetzt gehen Sie auf <a href="http://127.0.0.1:8000/redoc">http://127.0.0.1:8000/redoc</a>.</p> | |
| <ul> | |
| <li>Die alternative Dokumentation wird ebenfalls den neuen Query-Parameter und Body widerspiegeln:</li> | |
| </ul> | |
| <p><img alt="ReDoc" src="https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png" /></p> | |
| <h3 id="recap">Zusammenfassung<a class="headerlink" data-preview="" href="#recap" title="Permanent link">¶</a></h3> | |
| <p>Zusammengefasst deklarieren Sie <strong>einmal</strong> die Typen von Parametern, Body, usw. als Funktionsparameter.</p> | |
| <p>Das machen Sie mit modernen Standard-Python-Typen.</p> | |
| <p>Sie müssen keine neue Syntax, Methoden oder Klassen einer bestimmten Bibliothek usw. lernen.</p> | |
| <p>Nur Standard-<strong>Python</strong>.</p> | |
| <p>Zum Beispiel für ein <code>int</code>:</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-6-1"><span class="n">item_id</span><span class="p">:</span> <span class="nb">int</span> | |
| </span></code></pre></div> | |
| <p>oder für ein komplexeres <code>Item</code>-Modell:</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-7-1"><span class="n">item</span><span class="p">:</span> <span class="n">Item</span> | |
| </span></code></pre></div> | |
| <p>... und mit dieser einen Deklaration erhalten Sie:</p> | |
| <ul> | |
| <li>Editor-Unterstützung, einschließlich:<ul> | |
| <li>Vervollständigung.</li> | |
| <li>Typprüfungen.</li> | |
| </ul> | |
| </li> | |
| <li>Validierung von Daten:<ul> | |
| <li>Automatische und eindeutige Fehler, wenn die Daten ungültig sind.</li> | |
| <li>Validierung sogar für tief verschachtelte JSON-Objekte.</li> | |
| </ul> | |
| </li> | |
| <li><dfn title="auch bekannt als: Serialisierung, Parsen, Marshalling">Konvertierung</dfn> von Eingabedaten: Aus dem Netzwerk kommend, zu Python-Daten und -Typen. Lesen von:<ul> | |
| <li>JSON.</li> | |
| <li>Pfad-Parametern.</li> | |
| <li>Query-Parametern.</li> | |
| <li>Cookies.</li> | |
| <li>Headern.</li> | |
| <li>Formularen.</li> | |
| <li>Dateien.</li> | |
| </ul> | |
| </li> | |
| <li><dfn title="auch bekannt als: Serialisierung, Parsen, Marshalling">Konvertierung</dfn> von Ausgabedaten: Konvertierung von Python-Daten und -Typen zu Netzwerkdaten (als JSON):<ul> | |
| <li>Konvertieren von Python-Typen (<code>str</code>, <code>int</code>, <code>float</code>, <code>bool</code>, <code>list</code>, usw.).</li> | |
| <li><code>datetime</code>-Objekte.</li> | |
| <li><code>UUID</code>-Objekte.</li> | |
| <li>Datenbankmodelle.</li> | |
| <li>... und viele mehr.</li> | |
| </ul> | |
| </li> | |
| <li>Automatische interaktive API-Dokumentation, einschließlich zwei alternativer Benutzeroberflächen:<ul> | |
| <li>Swagger UI.</li> | |
| <li>ReDoc.</li> | |
| </ul> | |
| </li> | |
| </ul> | |
| <hr /> | |
| <p>Um auf das vorherige Codebeispiel zurückzukommen, <strong>FastAPI</strong> wird:</p> | |
| <ul> | |
| <li>Validieren, dass es eine <code>item_id</code> im Pfad für <code>GET</code>- und <code>PUT</code>-Requests gibt.</li> | |
| <li>Validieren, ob die <code>item_id</code> vom Typ <code>int</code> für <code>GET</code>- und <code>PUT</code>-Requests ist.<ul> | |
| <li>Falls nicht, sieht der Client einen hilfreichen, klaren Fehler.</li> | |
| </ul> | |
| </li> | |
| <li>Prüfen, ob es einen optionalen Query-Parameter namens <code>q</code> (wie in <code>http://127.0.0.1:8000/items/foo?q=somequery</code>) für <code>GET</code>-Requests gibt.<ul> | |
| <li>Da der <code>q</code>-Parameter mit <code>= None</code> deklariert ist, ist er optional.</li> | |
| <li>Ohne das <code>None</code> wäre er erforderlich (wie der Body im Fall von <code>PUT</code>).</li> | |
| </ul> | |
| </li> | |
| <li>Bei <code>PUT</code>-Requests an <code>/items/{item_id}</code> den Body als JSON lesen:<ul> | |
| <li>Prüfen, ob er ein erforderliches Attribut <code>name</code> hat, das ein <code>str</code> sein muss.</li> | |
| <li>Prüfen, ob er ein erforderliches Attribut <code>price</code> hat, das ein <code>float</code> sein muss.</li> | |
| <li>Prüfen, ob er ein optionales Attribut <code>is_offer</code> hat, das ein <code>bool</code> sein muss, falls vorhanden.</li> | |
| <li>All dies würde auch für tief verschachtelte JSON-Objekte funktionieren.</li> | |
| </ul> | |
| </li> | |
| <li>Automatisch von und nach JSON konvertieren.</li> | |
| <li>Alles mit OpenAPI dokumentieren, welches verwendet werden kann von:<ul> | |
| <li>Interaktiven Dokumentationssystemen.</li> | |
| <li>Automatisch Client-Code generierenden Systemen für viele Sprachen.</li> | |
| </ul> | |
| </li> | |
| <li>Zwei interaktive Dokumentations-Weboberflächen direkt bereitstellen.</li> | |
| </ul> | |
| <hr /> | |
| <p>Wir haben nur an der Oberfläche gekratzt, aber Sie bekommen schon eine Vorstellung davon, wie das Ganze funktioniert.</p> | |
| <p>Versuchen Sie, diese Zeile zu ändern:</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-8-1"> <span class="k">return</span> <span class="p">{</span><span class="s2">"item_name"</span><span class="p">:</span> <span class="n">item</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s2">"item_id"</span><span class="p">:</span> <span class="n">item_id</span><span class="p">}</span> | |
| </span></code></pre></div> | |
| <p>... von:</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-9-1"> <span class="o">...</span> <span class="s2">"item_name"</span><span class="p">:</span> <span class="n">item</span><span class="o">.</span><span class="n">name</span> <span class="o">...</span> | |
| </span></code></pre></div> | |
| <p>... zu:</p> | |
| <div class="highlight"><pre><span></span><code><span id="__span-10-1"> <span class="o">...</span> <span class="s2">"item_price"</span><span class="p">:</span> <span class="n">item</span><span class="o">.</span><span class="n">price</span> <span class="o">...</span> | |
| </span></code></pre></div> | |
| <p>... und sehen Sie, wie Ihr Editor die Attribute automatisch vervollständigt und ihre Typen kennt:</p> | |
| <p><img alt="Editor Unterstützung" src="https://fastapi.tiangolo.com/img/vscode-completion.png" /></p> | |
| <p>Für ein vollständigeres Beispiel, mit weiteren Funktionen, siehe das <a href="https://fastapi.tiangolo.com/de/tutorial/">Tutorial – Benutzerhandbuch</a>.</p> | |
| <p><strong>Spoiler-Alarm</strong>: Das Tutorial – Benutzerhandbuch enthält:</p> | |
| <ul> | |
| <li>Deklaration von <strong>Parametern</strong> von anderen verschiedenen Stellen wie: <strong>Header</strong>, <strong>Cookies</strong>, <strong>Formularfelder</strong> und <strong>Dateien</strong>.</li> | |
| <li>Wie man <strong>Validierungs-Constraints</strong> wie <code>maximum_length</code> oder <code>regex</code> setzt.</li> | |
| <li>Ein sehr leistungsfähiges und einfach zu bedienendes System für <strong><dfn title="auch bekannt als Komponenten, Ressourcen, Provider, Services, Injectables">Dependency Injection</dfn></strong>.</li> | |
| <li>Sicherheit und Authentifizierung, einschließlich Unterstützung für <strong>OAuth2</strong> mit <strong>JWT-Tokens</strong> und <strong>HTTP Basic</strong> Authentifizierung.</li> | |
| <li>Fortgeschrittenere (aber ebenso einfache) Techniken zur Deklaration <strong>tief verschachtelter JSON-Modelle</strong> (dank Pydantic).</li> | |
| <li><strong>GraphQL</strong>-Integration mit <a href="https://strawberry.rocks">Strawberry</a> und anderen Bibliotheken.</li> | |
| <li>Viele zusätzliche Features (dank Starlette) wie:<ul> | |
| <li><strong>WebSockets</strong></li> | |
| <li>extrem einfache Tests auf Basis von HTTPX und <code>pytest</code></li> | |
| <li><strong>CORS</strong></li> | |
| <li><strong>Cookie-Sessions</strong></li> | |
| <li>... und mehr.</li> | |
| </ul> | |
| </li> | |
| </ul> | |
| <h3 id="deploy-your-app-optional">Ihre App deployen (optional)<a class="headerlink" data-preview="" href="#deploy-your-app-optional" title="Permanent link">¶</a></h3> | |
| <p>Optional können Sie Ihre FastAPI-App in die <a href="https://fastapicloud.com">FastAPI Cloud</a> deployen, gehen Sie und treten Sie der Warteliste bei, falls noch nicht geschehen. 🚀</p> | |
| <p>Wenn Sie bereits ein <strong>FastAPI Cloud</strong>-Konto haben (wir haben Sie von der Warteliste eingeladen 😉), können Sie Ihre Anwendung mit einem einzigen Befehl deployen.</p> | |
| <div class="termy"> | |
| <div class="highlight"><pre><span></span><code><span id="__span-11-1"><span class="gp">$ </span>fastapi<span class="w"> </span>deploy | |
| </span><span id="__span-11-2"> | |
| </span><span id="__span-11-3"><span class="go">Deploying to FastAPI Cloud...</span> | |
| </span><span id="__span-11-4"> | |
| </span><span id="__span-11-5"><span class="go">✅ Deployment successful!</span> | |
| </span><span id="__span-11-6"> | |
| </span><span id="__span-11-7"><span class="go">🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev</span> | |
| </span></code></pre></div> | |
| </div> | |
| <p>Das war’s! Jetzt können Sie unter dieser URL auf Ihre App zugreifen. ✨</p> | |
| <h4 id="about-fastapi-cloud">Über FastAPI Cloud<a class="headerlink" data-preview="" href="#about-fastapi-cloud" title="Permanent link">¶</a></h4> | |
| <p><strong><a href="https://fastapicloud.com">FastAPI Cloud</a></strong> wird vom selben Autor und Team hinter <strong>FastAPI</strong> entwickelt.</p> | |
| <p>Es vereinfacht den Prozess des <strong>Erstellens</strong>, <strong>Deployens</strong> und <strong>Zugreifens</strong> auf eine API mit minimalem Aufwand.</p> | |
| <p>Es bringt die gleiche <strong>Developer-Experience</strong> beim Erstellen von Apps mit FastAPI auch zum <strong>Deployment</strong> in der Cloud. 🎉</p> | |
| <p>FastAPI Cloud ist der Hauptsponsor und Finanzierer der <em>FastAPI and friends</em> Open-Source-Projekte. ✨</p> | |
| <h4 id="deploy-to-other-cloud-providers">Bei anderen Cloudanbietern deployen<a class="headerlink" data-preview="" href="#deploy-to-other-cloud-providers" title="Permanent link">¶</a></h4> | |
| <p>FastAPI ist Open Source und basiert auf Standards. Sie können FastAPI-Apps bei jedem Cloudanbieter Ihrer Wahl deployen.</p> | |
| <p>Folgen Sie den Anleitungen Ihres Cloudanbieters, um FastAPI-Apps dort bereitzustellen. 🤓</p> | |
| <h2 id="performance">Performanz<a class="headerlink" data-preview="" href="#performance" title="Permanent link">¶</a></h2> | |
| <p>Unabhängige TechEmpower-Benchmarks zeigen <strong>FastAPI</strong>-Anwendungen, die unter Uvicorn laufen, als <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7">eines der schnellsten verfügbaren Python-Frameworks</a>, nur hinter Starlette und Uvicorn selbst (intern von FastAPI verwendet). (*)</p> | |
| <p>Um mehr darüber zu erfahren, siehe den Abschnitt <a href="https://fastapi.tiangolo.com/de/benchmarks/">Benchmarks</a>.</p> | |
| <h2 id="dependencies">Abhängigkeiten<a class="headerlink" data-preview="" href="#dependencies" title="Permanent link">¶</a></h2> | |
| <p>FastAPI hängt von Pydantic und Starlette ab.</p> | |
| <h3 id="standard-dependencies"><code>standard</code>-Abhängigkeiten<a class="headerlink" data-preview="" href="#standard-dependencies" title="Permanent link">¶</a></h3> | |
| <p>Wenn Sie FastAPI mit <code>pip install "fastapi[standard]"</code> installieren, kommt es mit der <code>standard</code>-Gruppe optionaler Abhängigkeiten:</p> | |
| <p>Verwendet von Pydantic:</p> | |
| <ul> | |
| <li><a href="https://github.com/JoshData/python-email-validator"><code>email-validator</code></a> – für E-Mail-Validierung.</li> | |
| </ul> | |
| <p>Verwendet von Starlette:</p> | |
| <ul> | |
| <li><a href="https://www.python-httpx.org"><code>httpx</code></a> – erforderlich, wenn Sie den <code>TestClient</code> verwenden möchten.</li> | |
| <li><a href="https://jinja.palletsprojects.com"><code>jinja2</code></a> – erforderlich, wenn Sie die Default-Template-Konfiguration verwenden möchten.</li> | |
| <li><a href="https://github.com/Kludex/python-multipart"><code>python-multipart</code></a> – erforderlich, wenn Sie Formulare mittels <code>request.form()</code> <dfn title="Konvertieren des Strings, der aus einem HTTP-Request stammt, nach Python-Daten">„parsen“</dfn> möchten.</li> | |
| </ul> | |
| <p>Verwendet von FastAPI:</p> | |
| <ul> | |
| <li><a href="https://www.uvicorn.dev"><code>uvicorn</code></a> – für den Server, der Ihre Anwendung lädt und bereitstellt. Dies umfasst <code>uvicorn[standard]</code>, das einige Abhängigkeiten (z. B. <code>uvloop</code>) beinhaltet, die für eine Bereitstellung mit hoher Performanz benötigt werden.</li> | |
| <li><code>fastapi-cli[standard]</code> – um den <code>fastapi</code>-Befehl bereitzustellen.<ul> | |
| <li>Dies beinhaltet <code>fastapi-cloud-cli</code>, das es Ihnen ermöglicht, Ihre FastAPI-Anwendung auf <a href="https://fastapicloud.com">FastAPI Cloud</a> bereitzustellen.</li> | |
| </ul> | |
| </li> | |
| </ul> | |
| <h3 id="without-standard-dependencies">Ohne <code>standard</code>-Abhängigkeiten<a class="headerlink" data-preview="" href="#without-standard-dependencies" title="Permanent link">¶</a></h3> | |
| <p>Wenn Sie die <code>standard</code> optionalen Abhängigkeiten nicht einschließen möchten, können Sie mit <code>pip install fastapi</code> statt <code>pip install "fastapi[standard]"</code> installieren.</p> | |
| <h3 id="without-fastapi-cloud-cli">Ohne <code>fastapi-cloud-cli</code><a class="headerlink" data-preview="" href="#without-fastapi-cloud-cli" title="Permanent link">¶</a></h3> | |
| <p>Wenn Sie FastAPI mit den Standardabhängigkeiten, aber ohne das <code>fastapi-cloud-cli</code> installieren möchten, können Sie mit <code>pip install "fastapi[standard-no-fastapi-cloud-cli]"</code> installieren.</p> | |
| <h3 id="additional-optional-dependencies">Zusätzliche optionale Abhängigkeiten<a class="headerlink" data-preview="" href="#additional-optional-dependencies" title="Permanent link">¶</a></h3> | |
| <p>Es gibt einige zusätzliche Abhängigkeiten, die Sie installieren möchten.</p> | |
| <p>Zusätzliche optionale Pydantic-Abhängigkeiten:</p> | |
| <ul> | |
| <li><a href="https://docs.pydantic.dev/latest/usage/pydantic_settings/"><code>pydantic-settings</code></a> – für die Verwaltung von Einstellungen.</li> | |
| <li><a href="https://docs.pydantic.dev/latest/usage/types/extra_types/extra_types/"><code>pydantic-extra-types</code></a> – für zusätzliche Typen zur Verwendung mit Pydantic.</li> | |
| </ul> | |
| <p>Zusätzliche optionale FastAPI-Abhängigkeiten:</p> | |
| <ul> | |
| <li><a href="https://github.com/ijl/orjson"><code>orjson</code></a> – erforderlich, wenn Sie <code>ORJSONResponse</code> verwenden möchten.</li> | |
| <li><a href="https://github.com/esnme/ultrajson"><code>ujson</code></a> – erforderlich, wenn Sie <code>UJSONResponse</code> verwenden möchten.</li> | |
| </ul> | |
| <h2 id="license">Lizenz<a class="headerlink" data-preview="" href="#license" title="Permanent link">¶</a></h2> | |
| <p>Dieses Projekt ist unter den Bedingungen der MIT-Lizenz lizenziert.</p> | |
| </article> | |
| </div> | |
| <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> | |
| <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> | |
| </div> | |
| <button type="button" class="md-top md-icon" data-md-component="top" hidden> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> | |
| Zurück zum Seitenanfang | |
| </button> | |
| </main> | |
| <footer class="md-footer"> | |
| <nav class="md-footer__inner md-grid" aria-label="Fußzeile" > | |
| <a href="features/" class="md-footer__link md-footer__link--next" aria-label="Weiter: Merkmale"> | |
| <div class="md-footer__title"> | |
| <span class="md-footer__direction"> | |
| Weiter | |
| </span> | |
| <div class="md-ellipsis"> | |
| Merkmale | |
| </div> | |
| </div> | |
| <div class="md-footer__button md-icon"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg> | |
| </div> | |
| </a> | |
| </nav> | |
| <div class="md-footer-meta md-typeset"> | |
| <div class="md-footer-meta__inner md-grid"> | |
| <div class="md-copyright"> | |
| <div class="md-copyright__highlight"> | |
| The FastAPI trademark is owned by <a href="https://tiangolo.com" target="_blank">@tiangolo</a> and is registered in the US and across other regions | |
| </div> | |
| Made with | |
| <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> | |
| Material for MkDocs | |
| </a> | |
| </div> | |
| <div class="md-social"> | |
| <a href="https://github.com/fastapi/fastapi" target="_blank" rel="noopener" title="github.com" class="md-social__link"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1M496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2m-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3m-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1"/></svg> | |
| </a> | |
| <a href="https://discord.gg/VQjSZaeJmf" target="_blank" rel="noopener" title="discord.gg" class="md-social__link"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> | |
| </a> | |
| <a href="https://x.com/fastapi" target="_blank" rel="noopener" title="x.com" class="md-social__link"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> | |
| </a> | |
| <a href="https://www.linkedin.com/company/fastapi" target="_blank" rel="noopener" title="www.linkedin.com" class="md-social__link"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77m282.1 320h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9z"/></svg> | |
| </a> | |
| <a href="https://tiangolo.com" target="_blank" rel="noopener" title="tiangolo.com" class="md-social__link"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M351.9 280H161c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zm-191-48h190.9c-2.8-64.5-17.1-123.9-37.4-167.4-11.4-24.4-23.7-41.8-35.1-52.4C268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4m-48 0c3.5-85.6 25.6-165.1 57.9-217.3C78.7 47.3 10.9 131.2 1.5 232zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3zm111.4-48C501.9 131.2 434.1 47.3 342 14.7c32.3 52.2 54.4 131.7 57.9 217.3z"/></svg> | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| </footer> | |
| </div> | |
| <div class="md-dialog" data-md-component="dialog"> | |
| <div class="md-dialog__inner md-typeset"></div> | |
| </div> | |
| <div class="md-progress" data-md-component="progress" role="progressbar"></div> | |
| <script id="__config" type="application/json">{"annotate": null, "base": ".", "features": ["content.code.annotate", "content.code.copy", "content.footnote.tooltips", "content.tabs.link", "content.tooltips", "navigation.footer", "navigation.indexes", "navigation.instant", "navigation.instant.prefetch", "navigation.instant.progress", "navigation.path", "navigation.tabs", "navigation.tabs.sticky", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}, "version": null}</script> | |
| <script src="assets/javascripts/bundle.79ae519e.min.js"></script> | |
| <script src="js/termynal.js"></script> | |
| <script src="js/custom.js"></script> | |
| <script src="js/init_kapa_widget.js"></script> | |
| <!-- Cloudflare Pages Analytics --><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "83c63961621f43319d43d493c35d7611"}'></script><!-- Cloudflare Pages Analytics --></body> | |
| </html> |