
# Einführung
FastAPI ist weit über eine einfache Python-Bibliothek zur Bereitstellung von APIs hinausgewachsen. Es hat sich zu einem breiteren Ökosystem entwickelt, auf das sich viele Entwickler verlassen, um moderne Webanwendungen zu erstellen, insbesondere für KI- und maschinelle Lernprojekte. Einer der Gründe, warum FastAPI so beliebt wurde, ist seine Geschwindigkeit, Einfachheit und sein entwicklerfreundliches Design.

Bild von FastAPI-Cloud
Nun, mit FastAPI-CloudAuch die Bereitstellung wird viel einfacher. Anstatt Zeit mit der Konfiguration von Servern und Bereitstellungspipelines zu verbringen, können Sie eine Anwendung in Sekundenschnelle mithilfe der FastAPI Cloud-Befehlszeilenschnittstelle (CLI) bereitstellen. Das Setup fühlt sich unkompliziert, leichtgewichtig an und kommt dem reibungslosen Erlebnis, das Entwickler von modernen verwalteten Plattformen erwarten, viel näher.
Zum Zeitpunkt des Verfassens dieses Artikels erfolgt die Bereitstellung des Zugangs noch über eine Warteliste. Ich habe mich vor ein paar Monaten beworben und vor kurzem Zugang erhalten, daher wollte ich einen einfachen Leitfaden basierend auf meinen Erfahrungen zusammenstellen. In diesem Tutorial werde ich den grundlegenden Einrichtungsprozess durchgehen und zeigen, wie man in nur wenigen Schritten eine kleine FastAPI-App bereitstellt.
# Erstellen des Projekts
In diesem Tutorial erstellen Sie mithilfe von FastAPI ein einfaches Stay-Metall-Dashboard. Die App ruft Gold- und Silberpreise von einer API ab, gibt die Daten im JSON-Format zurück und zeigt die Werte im Browser über eine kleine HTML-Schnittstelle an.
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- UV für das Projektgerüst installiert oder eine aktuelle unterstützte Python-Model.
- Ein FastAPI Cloud-Konto.
Erstellen Sie zunächst ein neues FastAPI-Projekt mit dem offiziellen Setup-Befehl:
uvx fastapi-new metals-live
cd metals-live
Innerhalb weniger Sekunden generiert FastAPI die Projektstruktur und installiert die erforderlichen Abhängigkeiten für Sie.

Bild vom Autor
Als nächstes aktivieren Sie die virtuelle Umgebung im Projektverzeichnis.
Unter Linux/macOS:
supply .venv/bin/activate
Auf Home windows PowerShell:
.venvScriptsActivate.ps1
# httpx hinzufügen
Als nächstes installieren Sie die Pakete, die die App benötigt. Wir werden verwenden httpx um Stay-Gold- und Silberpreise von der API abzurufen. Außerdem stellen wir sicher, dass die Commonplace-FastAPI-Extras installiert sind, damit die App reibungslos läuft und bereitgestellt werden kann, ohne dass Abhängigkeiten fehlen.
uv add httpx "fastapi(customary)"
Dieser Befehl fügt hinzu httpx für ausgehende API-Anfragen und installiert die standardmäßigen FastAPI-Abhängigkeiten, die üblicherweise für Entwicklung und Bereitstellung benötigt werden.
# Ersetzen der Commonplace-App
Jetzt ist es an der Zeit, die Commonplace-FastAPI-App durch die Model zu ersetzen, die Sie tatsächlich bereitstellen werden.
So sieht die Standardprojektstruktur aus:

Bild vom Autor
Offen most important.py und ersetzen Sie den Inhalt durch den unten gezeigten benutzerdefinierten Code. Diese Model macht zwei Dinge: Sie ruft Stay-Gold- und Silberpreise von der Gold-API ab und stellt ein einfaches Browser-Dashboard bereit, das alle 15 Sekunden automatisch aktualisiert wird.
Fügen Sie dies ein most important.py:
import httpx
from fastapi import FastAPI, HTTPException
from fastapi.responses import HTMLResponse
app = FastAPI(title="Stay Gold & Silver Costs")
GOLD_API_BASE = "https://api.gold-api.com"
async def fetch_price(image: str):
url = f"{GOLD_API_BASE}/worth/{image}"
async with httpx.AsyncClient(timeout=10.0) as consumer:
response = await consumer.get(url)
if response.status_code != 200:
elevate HTTPException(status_code=502, element=f"Did not fetch {image} worth")
information = response.json()
return {
"image": information.get("image", image),
"title": information.get("title", image),
"worth": information.get("worth"),
"forex": information.get("forex", "USD"),
"updatedAt": information.get("updatedAt") or information.get("timestamp"),
}
@app.get("/api/costs")
async def get_prices():
gold = await fetch_price("XAU")
silver = await fetch_price("XAG")
return {
"gold": gold,
"silver": silver,
}
@app.get("https://www.kdnuggets.com/", response_class=HTMLResponse)
async def residence():
return """
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta title="viewport" content material="width=device-width, initial-scale=1" />
<title>Stay Gold & Silver Costs</title>
<fashion>
physique {
font-family: Arial, sans-serif;
background: #0f1115;
shade: #ffffff;
margin: 0;
padding: 40px 20px;
}
.container {
max-width: 900px;
margin: 0 auto;
}
h1 {
margin-bottom: 8px;
}
p {
shade: #b9c0cc;
}
.grid {
show: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
hole: 20px;
margin-top: 30px;
}
.card {
background: #171a21;
border: 1px stable #2a2f3a;
border-radius: 16px;
padding: 24px;
}
.label {
font-size: 14px;
shade: #9aa4b2;
margin-bottom: 10px;
}
.worth {
font-size: 36px;
font-weight: daring;
margin-bottom: 8px;
}
.meta {
font-size: 14px;
shade: #c6ced9;
}
.footer {
margin-top: 24px;
font-size: 13px;
shade: #8c97a8;
}
</fashion>
</head>
<physique>
<div class="container">
<h1>Stay Gold & Silver Costs</h1>
<p>Costs refresh routinely each 15 seconds.</p>
<div class="grid">
<div class="card">
<div class="label">Gold</div>
<div class="worth" id="gold-price">Loading...</div>
<div class="meta" id="gold-meta"></div>
</div>
<div class="card">
<div class="label">Silver</div>
<div class="worth" id="silver-price">Loading...</div>
<div class="meta" id="silver-meta"></div>
</div>
</div>
<div class="footer" id="up to date"></div>
</div>
<script>
async operate loadPrices() {
strive {
const res = await fetch('/api/costs');
const information = await res.json();
const gold = information.gold;
const silver = information.silver;
doc.getElementById('gold-price').textContent =
`${gold.worth ?? 'N/A'} ${gold.forex ?? ''}`;
doc.getElementById('silver-price').textContent =
`${silver.worth ?? 'N/A'} ${silver.forex ?? ''}`;
doc.getElementById('gold-meta').textContent =
gold.image || 'XAU';
doc.getElementById('silver-meta').textContent =
silver.image || 'XAG';
const up to date = gold.updatedAt || silver.updatedAt;
doc.getElementById('up to date').textContent =
up to date
? `Final up to date: ${new Date(up to date).toLocaleString()}`
: 'Final up to date: Unknown';
} catch (err) {
doc.getElementById('gold-price').textContent="Error";
doc.getElementById('silver-price').textContent="Error";
doc.getElementById('gold-meta').textContent="";
doc.getElementById('silver-meta').textContent="";
doc.getElementById('up to date').textContent="Couldn't load stay costs.";
}
}
loadPrices();
setInterval(loadPrices, 15000);
</script>
</physique>
</html>
"""
Was dieser Code bewirkt:
- Erstellt eine FastAPI-App.
- Ruft Stay-Gold- und Silberpreise von der API ab.
- Gibt die Daten zurück
/api/costs. - Stellt ein einfaches HTML-Dashboard zur Verfügung
/. - Aktualisiert die angezeigten Preise alle 15 Sekunden.
# Lokal testen
Vor der Bereitstellung empfiehlt es sich, die App lokal auszuführen und sicherzustellen, dass alles wie erwartet funktioniert. FastAPI macht dies mit seinem integrierten Entwicklungsserver einfach.
Starten Sie die App mit:
Sobald der Server startet, generiert FastAPI eine lokale URL für Ihre App und eine Dokumenten-URL zum Testen der Endpunkte.

Bild vom Autor
Öffnen Sie Ihren Browser und gehen Sie zu:
Sie sollten Ihr Stay-Dashboard mit den Gold- und Silberpreisen sehen. Die Werte werden automatisch alle 15 Sekunden aktualisiert.

Bild vom Autor
Sie können den JSON-Endpunkt auch direkt testen unter:
http://127.0.0.1:8000/api/costs
Dies ist besonders nützlich, wenn Sie die Rohantwort überprüfen oder die Daten später mit einem anderen Frontend oder einer anderen Anwendung verbinden möchten.

Bild vom Autor
# Bereitstellung in der FastAPI Cloud
Sobald die App lokal funktioniert, können Sie sie in der FastAPI Cloud bereitstellen. Der Bereitstellungsablauf ist sehr einfach und beginnt mit einem einzigen Befehl.
Laufen:
Die CLI führt Sie durch die Verbindung Ihres FastAPI Cloud-Kontos und den Abschluss der Einrichtung. Während des Onboardings werden Ihnen möglicherweise einige kurze Fragen gestellt, z. B. Ihr Teamname, App-Identify und Bereitstellungseinstellungen.

Bild vom Autor
Sobald dies erledigt ist, erstellt und stellt FastAPI Cloud Ihre App für Sie bereit.

Bild vom Autor
Nach Abschluss der Bereitstellung erhalten Sie eine öffentliche Stay-URL für Ihre App – zum Beispiel:

Bild vom Autor
https://metals-live.fastapicloud.dev/
FastAPI Cloud bietet Ihnen auch interaktive API-Dokumente unter:
https://metals-live.fastapicloud.dev/docs

Bild vom Autor
Dies ist nützlich, da Sie Ihre API direkt über den Browser testen können, ohne dass zusätzliche Instruments erforderlich sind.

Bild vom Autor
# Überwachung der App
Nach der Bereitstellung können Sie das FastAPI Cloud-Dashboard verwenden, um Ihre App zu überwachen und ihre Protokolle zu überprüfen.
So zeigen Sie die Protokolle an:
- Öffnen Sie das FastAPI Cloud-Dashboard.
- Gehe zu Apps.
- Wählen Sie Ihre App aus.
- Offen Protokolle.
Dies ist nützlich, um zu überprüfen, ob Ihre App ordnungsgemäß ausgeführt wird, API-Fehler zu erkennen und Probleme nach der Bereitstellung zu debuggen.

Bild vom Autor
FastAPI Cloud fühlt sich auch Plattformen ähnlicher an Supabase oder VercelMit verwaltetem Internet hosting, schneller CLI-basierter Bereitstellung und zusätzlichen Integrationen können Sie eine Verbindung zu Ihrer App herstellen, während Sie sie erweitern.

Bild vom Autor
# Zusammenfassung
Mit FastAPI Cloud können Sie eine kleine FastAPI-App ganz einfach von der lokalen Entwicklung in eine Stay-Bereitstellung überführen. In diesem Leitfaden haben wir ein einfaches Stay-Metals-Dashboard erstellt, es lokal getestet, es mit einem Befehl bereitgestellt und die Protokolle nach dem Begin überprüft.
Bei einer ersten Bereitstellung ist der Workflow unkompliziert und eine gute Einführung in die FastAPI Cloud-Erfahrung.
Abid Ali Awan (@1abidaliawan) ist ein zertifizierter Datenwissenschaftler, der gerne Modelle für maschinelles Lernen erstellt. Derzeit konzentriert er sich auf die Erstellung von Inhalten und das Schreiben technischer Blogs zu maschinellem Lernen und Datenwissenschaftstechnologien. Abid verfügt über einen Grasp-Abschluss in Technologiemanagement und einen Bachelor-Abschluss in Telekommunikationstechnik. Seine Imaginative and prescient ist es, ein KI-Produkt mithilfe eines graphischen neuronalen Netzwerks für Schüler mit psychischen Erkrankungen zu entwickeln.
