FastAPI CLI¶
đ Traduction par IA et humains
Cette traduction a Ă©tĂ© rĂ©alisĂ©e par une IA guidĂ©e par des humains. đ€
Elle peut contenir des erreurs d'interprĂ©tation du sens original, ou paraĂźtre peu naturelle, etc. đ€
Vous pouvez améliorer cette traduction en nous aidant à mieux guider le LLM d'IA.
FastAPI CLI est un programme en ligne de commande que vous pouvez utiliser pour servir votre application FastAPI, gérer votre projet FastAPI, et plus encore.
Lorsque vous installez FastAPI (par exemple avec pip install "fastapi[standard]"), il est fourni avec un programme en ligne de commande que vous pouvez exécuter dans le terminal.
Pour exécuter votre application FastAPI en développement, vous pouvez utiliser la commande fastapi dev :
$ <font color="#4E9A06">fastapi</font> dev
<span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span> Starting development server đ
Searching for package file structure from directories with
<font color="#3465A4">__init__.py</font> files
Importing from <font color="#75507B">/home/user/code/</font><font color="#AD7FA8">awesomeapp</font>
<span style="background-color:#007166"><font color="#D3D7CF"> module </font></span> đ main.py
<span style="background-color:#007166"><font color="#D3D7CF"> code </font></span> Importing the FastAPI app object from the module with the
following code:
<u style="text-decoration-style:solid">from </u><u style="text-decoration-style:solid"><b>main</b></u><u style="text-decoration-style:solid"> import </u><u style="text-decoration-style:solid"><b>app</b></u>
<span style="background-color:#007166"><font color="#D3D7CF"> app </font></span> Using import string: <font color="#3465A4">main:app</font>
<span style="background-color:#007166"><font color="#D3D7CF"> server </font></span> Server started at <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000</u></font>
<span style="background-color:#007166"><font color="#D3D7CF"> server </font></span> Documentation at <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000/docs</u></font>
<span style="background-color:#007166"><font color="#D3D7CF"> tip </font></span> Running in development mode, for production use:
<b>fastapi run</b>
Logs:
<span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span> Will watch for changes in these directories:
<b>[</b><font color="#4E9A06">'/home/user/code/awesomeapp'</font><b>]</b>
<span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span> Uvicorn running on <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000</u></font> <b>(</b>Press CTRL+C to
quit<b>)</b>
<span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span> Started reloader process <b>[</b><font color="#34E2E2"><b>383138</b></font><b>]</b> using WatchFiles
<span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span> Started server process <b>[</b><font color="#34E2E2"><b>383153</b></font><b>]</b>
<span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span> Waiting for application startup.
<span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span> Application startup complete.
Astuce
Pour la production, utilisez fastapi run plutĂŽt que fastapi dev. đ
En interne, FastAPI CLI utilise Uvicorn, un serveur ASGI haute performance, prĂȘt pour la production. đ
La CLI fastapi tentera de dĂ©tecter automatiquement lâapplication FastAPI Ă exĂ©cuter, en supposant quâil sâagit dâun objet nommĂ© app dans un fichier main.py (ou quelques autres variantes).
Mais vous pouvez configurer explicitement lâapplication Ă utiliser.
Configurer le entrypoint de lâapplication dans pyproject.toml¶
Vous pouvez configurer lâendroit oĂč se trouve votre application dans un fichier pyproject.toml comme suit :
[tool.fastapi]
entrypoint = "main:app"
Cet entrypoint indiquera Ă la commande fastapi quâelle doit importer lâapplication comme ceci :
from main import app
Si votre code était structuré comme ceci :
.
âââ backend
â  âââ main.py
â  âââ __init__.py
Vous définiriez alors le entrypoint comme suit :
[tool.fastapi]
entrypoint = "backend.main:app"
ce qui serait équivalent à :
from backend.main import app
fastapi dev avec un chemin¶
Vous pouvez Ă©galement passer le chemin du fichier Ă la commande fastapi dev, et elle devinera lâobjet dâapplication FastAPI Ă utiliser :
$ fastapi dev main.py
Mais vous devez vous rappeler de passer le bon chemin Ă chaque fois que vous appelez la commande fastapi.
De plus, dâautres outils pourraient ne pas pouvoir le trouver, par exemple lâextension VS Code ou FastAPI Cloud, il est donc recommandĂ© dâutiliser le entrypoint dans pyproject.toml.
fastapi dev¶
LâexĂ©cution de fastapi dev lance le mode dĂ©veloppement.
Par dĂ©faut, lâauto-reload est activĂ© et recharge automatiquement le serveur lorsque vous modifiez votre code. Cela consomme des ressources et peut ĂȘtre moins stable que lorsquâil est dĂ©sactivĂ©. Vous devez lâutiliser uniquement pour le dĂ©veloppement. Il Ă©coute aussi sur lâadresse IP 127.0.0.1, qui est lâadresse IP permettant Ă votre machine de communiquer uniquement avec elleâmĂȘme (localhost).
fastapi run¶
Exécuter fastapi run démarre FastAPI en mode production par défaut.
Par dĂ©faut, lâauto-reload est dĂ©sactivĂ©. Il Ă©coute aussi sur lâadresse IP 0.0.0.0, ce qui signifie toutes les adresses IP disponibles ; de cette maniĂšre, il sera accessible publiquement Ă toute personne pouvant communiquer avec la machine. Câest ainsi que vous lâexĂ©cutez normalement en production, par exemple dans un conteneur.
Dans la plupart des cas, vous avez (et devez avoir) un « termination proxy » auâdessus qui gĂšre le HTTPS pour vous ; cela dĂ©pend de la façon dont vous dĂ©ployez votre application : votre fournisseur peut le faire pour vous, ou vous devrez le configurer vousâmĂȘme.
Astuce
Vous pouvez en savoir plus à ce sujet dans la documentation de déploiement.