committed by
GitHub
909 changed files with 30080 additions and 19619 deletions
@ -12,6 +12,9 @@ permissions: |
|||||
pull-requests: write |
pull-requests: write |
||||
statuses: write |
statuses: write |
||||
|
|
||||
|
env: |
||||
|
UV_SYSTEM_PYTHON: 1 |
||||
|
|
||||
jobs: |
jobs: |
||||
deploy-docs: |
deploy-docs: |
||||
runs-on: ubuntu-latest |
runs-on: ubuntu-latest |
||||
@ -25,21 +28,22 @@ jobs: |
|||||
uses: actions/setup-python@v5 |
uses: actions/setup-python@v5 |
||||
with: |
with: |
||||
python-version: "3.11" |
python-version: "3.11" |
||||
- uses: actions/cache@v4 |
- name: Setup uv |
||||
id: cache |
uses: astral-sh/setup-uv@v3 |
||||
with: |
with: |
||||
path: ${{ env.pythonLocation }} |
version: "0.4.15" |
||||
key: ${{ runner.os }}-python-github-actions-${{ env.pythonLocation }}-${{ hashFiles('requirements-github-actions.txt') }}-v01 |
enable-cache: true |
||||
|
cache-dependency-glob: | |
||||
|
requirements**.txt |
||||
|
pyproject.toml |
||||
- name: Install GitHub Actions dependencies |
- name: Install GitHub Actions dependencies |
||||
if: steps.cache.outputs.cache-hit != 'true' |
run: uv pip install -r requirements-github-actions.txt |
||||
run: pip install -r requirements-github-actions.txt |
|
||||
- name: Deploy Docs Status Pending |
- name: Deploy Docs Status Pending |
||||
run: python ./scripts/deploy_docs_status.py |
run: python ./scripts/deploy_docs_status.py |
||||
env: |
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
COMMIT_SHA: ${{ github.event.workflow_run.head_sha }} |
COMMIT_SHA: ${{ github.event.workflow_run.head_sha }} |
||||
RUN_ID: ${{ github.run_id }} |
RUN_ID: ${{ github.run_id }} |
||||
|
|
||||
- name: Clean site |
- name: Clean site |
||||
run: | |
run: | |
||||
rm -rf ./site |
rm -rf ./site |
||||
@ -55,19 +59,22 @@ jobs: |
|||||
# hashFiles returns an empty string if there are no files |
# hashFiles returns an empty string if there are no files |
||||
if: hashFiles('./site/*') |
if: hashFiles('./site/*') |
||||
id: deploy |
id: deploy |
||||
uses: cloudflare/pages-action@v1 |
env: |
||||
|
PROJECT_NAME: fastapitiangolo |
||||
|
BRANCH: ${{ ( github.event.workflow_run.head_repository.full_name == github.repository && github.event.workflow_run.head_branch == 'master' && 'main' ) || ( github.event.workflow_run.head_sha ) }} |
||||
|
# TODO: Use v3 when it's fixed, probably in v3.11 |
||||
|
# https://github.com/cloudflare/wrangler-action/issues/307 |
||||
|
uses: cloudflare/[email protected] |
||||
|
# uses: cloudflare/wrangler-action@v3 |
||||
with: |
with: |
||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} |
||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} |
||||
projectName: fastapitiangolo |
command: pages deploy ./site --project-name=${{ env.PROJECT_NAME }} --branch=${{ env.BRANCH }} |
||||
directory: './site' |
|
||||
gitHubToken: ${{ secrets.GITHUB_TOKEN }} |
|
||||
branch: ${{ ( github.event.workflow_run.head_repository.full_name == github.repository && github.event.workflow_run.head_branch == 'master' && 'main' ) || ( github.event.workflow_run.head_sha ) }} |
|
||||
- name: Comment Deploy |
- name: Comment Deploy |
||||
run: python ./scripts/deploy_docs_status.py |
run: python ./scripts/deploy_docs_status.py |
||||
env: |
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
DEPLOY_URL: ${{ steps.deploy.outputs.url }} |
DEPLOY_URL: ${{ steps.deploy.outputs.deployment-url }} |
||||
COMMIT_SHA: ${{ github.event.workflow_run.head_sha }} |
COMMIT_SHA: ${{ github.event.workflow_run.head_sha }} |
||||
RUN_ID: ${{ github.run_id }} |
RUN_ID: ${{ github.run_id }} |
||||
IS_DONE: "true" |
IS_DONE: "true" |
||||
|
@ -2,7 +2,7 @@ name: Issue Manager |
|||||
|
|
||||
on: |
on: |
||||
schedule: |
schedule: |
||||
- cron: "10 3 * * *" |
- cron: "13 22 * * *" |
||||
issue_comment: |
issue_comment: |
||||
types: |
types: |
||||
- created |
- created |
||||
@ -16,6 +16,7 @@ on: |
|||||
|
|
||||
permissions: |
permissions: |
||||
issues: write |
issues: write |
||||
|
pull-requests: write |
||||
|
|
||||
jobs: |
jobs: |
||||
issue-manager: |
issue-manager: |
||||
@ -26,7 +27,7 @@ jobs: |
|||||
env: |
env: |
||||
GITHUB_CONTEXT: ${{ toJson(github) }} |
GITHUB_CONTEXT: ${{ toJson(github) }} |
||||
run: echo "$GITHUB_CONTEXT" |
run: echo "$GITHUB_CONTEXT" |
||||
- uses: tiangolo/[email protected].0 |
- uses: tiangolo/[email protected].1 |
||||
with: |
with: |
||||
token: ${{ secrets.GITHUB_TOKEN }} |
token: ${{ secrets.GITHUB_TOKEN }} |
||||
config: > |
config: > |
||||
@ -35,8 +36,12 @@ jobs: |
|||||
"delay": 864000, |
"delay": 864000, |
||||
"message": "Assuming the original need was handled, this will be automatically closed now. But feel free to add more comments or create new issues or PRs." |
"message": "Assuming the original need was handled, this will be automatically closed now. But feel free to add more comments or create new issues or PRs." |
||||
}, |
}, |
||||
"changes-requested": { |
"waiting": { |
||||
"delay": 2628000, |
"delay": 2628000, |
||||
"message": "As this PR had requested changes to be applied but has been inactive for a while, it's now going to be closed. But if there's anyone interested, feel free to create a new PR." |
"message": "As this PR has been waiting for the original user for a while but seems to be inactive, it's now going to be closed. But if there's anyone interested, feel free to create a new PR." |
||||
|
}, |
||||
|
"invalid": { |
||||
|
"delay": 0, |
||||
|
"message": "This was marked as invalid and will be closed now. If this is an error, please provide additional details." |
||||
} |
} |
||||
} |
} |
||||
|
@ -34,8 +34,7 @@ jobs: |
|||||
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} |
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} |
||||
with: |
with: |
||||
limit-access-to-actor: true |
limit-access-to-actor: true |
||||
- uses: docker://tiangolo/latest-changes:0.3.0 |
- uses: tiangolo/[email protected] |
||||
# - uses: tiangolo/latest-changes@main |
|
||||
with: |
with: |
||||
token: ${{ secrets.GITHUB_TOKEN }} |
token: ${{ secrets.GITHUB_TOKEN }} |
||||
latest_changes_file: docs/en/docs/release-notes.md |
latest_changes_file: docs/en/docs/release-notes.md |
||||
|
@ -8,7 +8,7 @@ Aus diesem Grund werden diese üblicherweise in Umgebungsvariablen bereitgestell |
|||||
|
|
||||
## Umgebungsvariablen |
## Umgebungsvariablen |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Wenn Sie bereits wissen, was „Umgebungsvariablen“ sind und wie man sie verwendet, können Sie gerne mit dem nächsten Abschnitt weiter unten fortfahren. |
Wenn Sie bereits wissen, was „Umgebungsvariablen“ sind und wie man sie verwendet, können Sie gerne mit dem nächsten Abschnitt weiter unten fortfahren. |
||||
|
|
||||
@ -67,7 +67,7 @@ name = os.getenv("MY_NAME", "World") |
|||||
print(f"Hello {name} from Python") |
print(f"Hello {name} from Python") |
||||
``` |
``` |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Das zweite Argument für <a href="https://docs.python.org/3.8/library/os.html#os.getenv" class="external-link" target="_blank">`os.getenv()`</a> ist der zurückzugebende Defaultwert. |
Das zweite Argument für <a href="https://docs.python.org/3.8/library/os.html#os.getenv" class="external-link" target="_blank">`os.getenv()`</a> ist der zurückzugebende Defaultwert. |
||||
|
|
||||
@ -124,7 +124,7 @@ Hello World from Python |
|||||
|
|
||||
</div> |
</div> |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Weitere Informationen dazu finden Sie unter <a href="https://12factor.net/config" class="external-link" target="_blank">The Twelve-Factor App: Config</a>. |
Weitere Informationen dazu finden Sie unter <a href="https://12factor.net/config" class="external-link" target="_blank">The Twelve-Factor App: Config</a>. |
||||
|
|
||||
@ -181,7 +181,7 @@ Sie können dieselben Validierungs-Funktionen und -Tools verwenden, die Sie für |
|||||
//// tab | Pydantic v2 |
//// tab | Pydantic v2 |
||||
|
|
||||
```Python hl_lines="2 5-8 11" |
```Python hl_lines="2 5-8 11" |
||||
{!> ../../../docs_src/settings/tutorial001.py!} |
{!> ../../docs_src/settings/tutorial001.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
@ -195,12 +195,12 @@ In Pydantic v1 würden Sie `BaseSettings` direkt von `pydantic` statt von `pydan |
|||||
/// |
/// |
||||
|
|
||||
```Python hl_lines="2 5-8 11" |
```Python hl_lines="2 5-8 11" |
||||
{!> ../../../docs_src/settings/tutorial001_pv1.py!} |
{!> ../../docs_src/settings/tutorial001_pv1.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Für ein schnelles Copy-and-paste verwenden Sie nicht dieses Beispiel, sondern das letzte unten. |
Für ein schnelles Copy-and-paste verwenden Sie nicht dieses Beispiel, sondern das letzte unten. |
||||
|
|
||||
@ -215,7 +215,7 @@ Als Nächstes werden die Daten konvertiert und validiert. Wenn Sie also dieses ` |
|||||
Dann können Sie das neue `settings`-Objekt in Ihrer Anwendung verwenden: |
Dann können Sie das neue `settings`-Objekt in Ihrer Anwendung verwenden: |
||||
|
|
||||
```Python hl_lines="18-20" |
```Python hl_lines="18-20" |
||||
{!../../../docs_src/settings/tutorial001.py!} |
{!../../docs_src/settings/tutorial001.py!} |
||||
``` |
``` |
||||
|
|
||||
### Den Server ausführen |
### Den Server ausführen |
||||
@ -232,7 +232,7 @@ $ ADMIN_EMAIL="[email protected]" APP_NAME="ChimichangApp" uvicorn main:app |
|||||
|
|
||||
</div> |
</div> |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Um mehrere Umgebungsvariablen für einen einzelnen Befehl festzulegen, trennen Sie diese einfach durch ein Leerzeichen und fügen Sie alle vor dem Befehl ein. |
Um mehrere Umgebungsvariablen für einen einzelnen Befehl festzulegen, trennen Sie diese einfach durch ein Leerzeichen und fügen Sie alle vor dem Befehl ein. |
||||
|
|
||||
@ -251,16 +251,16 @@ Sie könnten diese Einstellungen in eine andere Moduldatei einfügen, wie Sie in |
|||||
Sie könnten beispielsweise eine Datei `config.py` haben mit: |
Sie könnten beispielsweise eine Datei `config.py` haben mit: |
||||
|
|
||||
```Python |
```Python |
||||
{!../../../docs_src/settings/app01/config.py!} |
{!../../docs_src/settings/app01/config.py!} |
||||
``` |
``` |
||||
|
|
||||
Und dann verwenden Sie diese in einer Datei `main.py`: |
Und dann verwenden Sie diese in einer Datei `main.py`: |
||||
|
|
||||
```Python hl_lines="3 11-13" |
```Python hl_lines="3 11-13" |
||||
{!../../../docs_src/settings/app01/main.py!} |
{!../../docs_src/settings/app01/main.py!} |
||||
``` |
``` |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Sie benötigen außerdem eine Datei `__init__.py`, wie in [Größere Anwendungen – mehrere Dateien](../tutorial/bigger-applications.md){.internal-link target=_blank} gesehen. |
Sie benötigen außerdem eine Datei `__init__.py`, wie in [Größere Anwendungen – mehrere Dateien](../tutorial/bigger-applications.md){.internal-link target=_blank} gesehen. |
||||
|
|
||||
@ -277,7 +277,7 @@ Dies könnte besonders beim Testen nützlich sein, da es sehr einfach ist, eine |
|||||
Ausgehend vom vorherigen Beispiel könnte Ihre Datei `config.py` so aussehen: |
Ausgehend vom vorherigen Beispiel könnte Ihre Datei `config.py` so aussehen: |
||||
|
|
||||
```Python hl_lines="10" |
```Python hl_lines="10" |
||||
{!../../../docs_src/settings/app02/config.py!} |
{!../../docs_src/settings/app02/config.py!} |
||||
``` |
``` |
||||
|
|
||||
Beachten Sie, dass wir jetzt keine Standardinstanz `settings = Settings()` erstellen. |
Beachten Sie, dass wir jetzt keine Standardinstanz `settings = Settings()` erstellen. |
||||
@ -289,7 +289,7 @@ Jetzt erstellen wir eine Abhängigkeit, die ein neues `config.Settings()` zurüc |
|||||
//// tab | Python 3.9+ |
//// tab | Python 3.9+ |
||||
|
|
||||
```Python hl_lines="6 12-13" |
```Python hl_lines="6 12-13" |
||||
{!> ../../../docs_src/settings/app02_an_py39/main.py!} |
{!> ../../docs_src/settings/app02_an_py39/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
@ -297,26 +297,26 @@ Jetzt erstellen wir eine Abhängigkeit, die ein neues `config.Settings()` zurüc |
|||||
//// tab | Python 3.8+ |
//// tab | Python 3.8+ |
||||
|
|
||||
```Python hl_lines="6 12-13" |
```Python hl_lines="6 12-13" |
||||
{!> ../../../docs_src/settings/app02_an/main.py!} |
{!> ../../docs_src/settings/app02_an/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
|
|
||||
//// tab | Python 3.8+ nicht annotiert |
//// tab | Python 3.8+ nicht annotiert |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Bevorzugen Sie die `Annotated`-Version, falls möglich. |
Bevorzugen Sie die `Annotated`-Version, falls möglich. |
||||
|
|
||||
/// |
/// |
||||
|
|
||||
```Python hl_lines="5 11-12" |
```Python hl_lines="5 11-12" |
||||
{!> ../../../docs_src/settings/app02/main.py!} |
{!> ../../docs_src/settings/app02/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Wir werden das `@lru_cache` in Kürze besprechen. |
Wir werden das `@lru_cache` in Kürze besprechen. |
||||
|
|
||||
@ -329,7 +329,7 @@ Und dann können wir das von der *Pfadoperation-Funktion* als Abhängigkeit einf |
|||||
//// tab | Python 3.9+ |
//// tab | Python 3.9+ |
||||
|
|
||||
```Python hl_lines="17 19-21" |
```Python hl_lines="17 19-21" |
||||
{!> ../../../docs_src/settings/app02_an_py39/main.py!} |
{!> ../../docs_src/settings/app02_an_py39/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
@ -337,21 +337,21 @@ Und dann können wir das von der *Pfadoperation-Funktion* als Abhängigkeit einf |
|||||
//// tab | Python 3.8+ |
//// tab | Python 3.8+ |
||||
|
|
||||
```Python hl_lines="17 19-21" |
```Python hl_lines="17 19-21" |
||||
{!> ../../../docs_src/settings/app02_an/main.py!} |
{!> ../../docs_src/settings/app02_an/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
|
|
||||
//// tab | Python 3.8+ nicht annotiert |
//// tab | Python 3.8+ nicht annotiert |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Bevorzugen Sie die `Annotated`-Version, falls möglich. |
Bevorzugen Sie die `Annotated`-Version, falls möglich. |
||||
|
|
||||
/// |
/// |
||||
|
|
||||
```Python hl_lines="16 18-20" |
```Python hl_lines="16 18-20" |
||||
{!> ../../../docs_src/settings/app02/main.py!} |
{!> ../../docs_src/settings/app02/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
@ -361,7 +361,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich. |
|||||
Dann wäre es sehr einfach, beim Testen ein anderes Einstellungsobjekt bereitzustellen, indem man eine Abhängigkeitsüberschreibung für `get_settings` erstellt: |
Dann wäre es sehr einfach, beim Testen ein anderes Einstellungsobjekt bereitzustellen, indem man eine Abhängigkeitsüberschreibung für `get_settings` erstellt: |
||||
|
|
||||
```Python hl_lines="9-10 13 21" |
```Python hl_lines="9-10 13 21" |
||||
{!../../../docs_src/settings/app02/test_main.py!} |
{!../../docs_src/settings/app02/test_main.py!} |
||||
``` |
``` |
||||
|
|
||||
Bei der Abhängigkeitsüberschreibung legen wir einen neuen Wert für `admin_email` fest, wenn wir das neue `Settings`-Objekt erstellen, und geben dann dieses neue Objekt zurück. |
Bei der Abhängigkeitsüberschreibung legen wir einen neuen Wert für `admin_email` fest, wenn wir das neue `Settings`-Objekt erstellen, und geben dann dieses neue Objekt zurück. |
||||
@ -374,7 +374,7 @@ Wenn Sie viele Einstellungen haben, die sich möglicherweise oft ändern, vielle |
|||||
|
|
||||
Diese Praxis ist so weit verbreitet, dass sie einen Namen hat. Diese Umgebungsvariablen werden üblicherweise in einer Datei `.env` abgelegt und die Datei wird „dotenv“ genannt. |
Diese Praxis ist so weit verbreitet, dass sie einen Namen hat. Diese Umgebungsvariablen werden üblicherweise in einer Datei `.env` abgelegt und die Datei wird „dotenv“ genannt. |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Eine Datei, die mit einem Punkt (`.`) beginnt, ist eine versteckte Datei in Unix-ähnlichen Systemen wie Linux und macOS. |
Eine Datei, die mit einem Punkt (`.`) beginnt, ist eine versteckte Datei in Unix-ähnlichen Systemen wie Linux und macOS. |
||||
|
|
||||
@ -384,7 +384,7 @@ Aber eine dotenv-Datei muss nicht unbedingt genau diesen Dateinamen haben. |
|||||
|
|
||||
Pydantic unterstützt das Lesen dieser Dateitypen mithilfe einer externen Bibliothek. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/latest/concepts/pydantic_settings/#dotenv-env-support" class="external-link" target="_blank">Pydantic Settings: Dotenv (.env) support</a>. |
Pydantic unterstützt das Lesen dieser Dateitypen mithilfe einer externen Bibliothek. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/latest/concepts/pydantic_settings/#dotenv-env-support" class="external-link" target="_blank">Pydantic Settings: Dotenv (.env) support</a>. |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Damit das funktioniert, müssen Sie `pip install python-dotenv` ausführen. |
Damit das funktioniert, müssen Sie `pip install python-dotenv` ausführen. |
||||
|
|
||||
@ -406,10 +406,10 @@ Und dann aktualisieren Sie Ihre `config.py` mit: |
|||||
//// tab | Pydantic v2 |
//// tab | Pydantic v2 |
||||
|
|
||||
```Python hl_lines="9" |
```Python hl_lines="9" |
||||
{!> ../../../docs_src/settings/app03_an/config.py!} |
{!> ../../docs_src/settings/app03_an/config.py!} |
||||
``` |
``` |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/latest/concepts/config/" class="external-link" target="_blank">Pydantic: Configuration</a>. |
Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/latest/concepts/config/" class="external-link" target="_blank">Pydantic: Configuration</a>. |
||||
|
|
||||
@ -420,10 +420,10 @@ Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet. |
|||||
//// tab | Pydantic v1 |
//// tab | Pydantic v1 |
||||
|
|
||||
```Python hl_lines="9-10" |
```Python hl_lines="9-10" |
||||
{!> ../../../docs_src/settings/app03_an/config_pv1.py!} |
{!> ../../docs_src/settings/app03_an/config_pv1.py!} |
||||
``` |
``` |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Die Klasse `Config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/1.10/usage/model_config/" class="external-link" target="_blank">Pydantic Model Config</a>. |
Die Klasse `Config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/1.10/usage/model_config/" class="external-link" target="_blank">Pydantic Model Config</a>. |
||||
|
|
||||
@ -465,7 +465,7 @@ Da wir jedoch den `@lru_cache`-Dekorator oben verwenden, wird das `Settings`-Obj |
|||||
//// tab | Python 3.9+ |
//// tab | Python 3.9+ |
||||
|
|
||||
```Python hl_lines="1 11" |
```Python hl_lines="1 11" |
||||
{!> ../../../docs_src/settings/app03_an_py39/main.py!} |
{!> ../../docs_src/settings/app03_an_py39/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
@ -473,21 +473,21 @@ Da wir jedoch den `@lru_cache`-Dekorator oben verwenden, wird das `Settings`-Obj |
|||||
//// tab | Python 3.8+ |
//// tab | Python 3.8+ |
||||
|
|
||||
```Python hl_lines="1 11" |
```Python hl_lines="1 11" |
||||
{!> ../../../docs_src/settings/app03_an/main.py!} |
{!> ../../docs_src/settings/app03_an/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
|
|
||||
//// tab | Python 3.8+ nicht annotiert |
//// tab | Python 3.8+ nicht annotiert |
||||
|
|
||||
/// tip | "Tipp" |
/// tip | Tipp |
||||
|
|
||||
Bevorzugen Sie die `Annotated`-Version, falls möglich. |
Bevorzugen Sie die `Annotated`-Version, falls möglich. |
||||
|
|
||||
/// |
/// |
||||
|
|
||||
```Python hl_lines="1 10" |
```Python hl_lines="1 10" |
||||
{!> ../../../docs_src/settings/app03/main.py!} |
{!> ../../docs_src/settings/app03/main.py!} |
||||
``` |
``` |
||||
|
|
||||
//// |
//// |
||||
|
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue