Weiter zum Inhalt

FARM-Stack-Guide: So baust du Full-Stack-Apps mit FastAPI, React & MongoDB

Lerne, mit dem FARM-Stack (FastAPI, React, MongoDB) schnell Full-Stack-Webapps zu bauen. Dieser Guide für Einsteiger deckt Setup, Features und 1-Klick-Deployment ab.
Aktualisiert 18. Sept. 2026  · 8 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

Der Full-Stack-Anwendungsgenerator für FastAPI, React und MongoDB (FARM) ist ein leistungsstarkes Tool, das die Erstellung produktionsreifer Webanwendungen deutlich vereinfacht. Durch die Integration von FastAPI für das Backend, React für das Frontend und MongoDB als skalierbare NoSQL-Datenbank ermöglicht der FARM-Generator Python-Entwicklerinnen und -Entwicklern, robuste Anwendungen mit minimalem Setup schnell zu scaffolden. Ideal für alle, die Features bauen wollen statt Boilerplate zu konfigurieren.

Dieser Artikel stellt den FARM-Generator vor, erklärt zentrale Features, führt dich Schritt für Schritt durch das Setup und zeigt seine Möglichkeiten an einem Praxisbeispiel: einer Task-Management-App. Wir möchten zeigen, wie der Generator Full-Stack-Entwicklung vereinfacht und Python-Teams befähigt, skalierbare, produktionsreife Anwendungen zu erstellen.

Brauchst du ein MongoDB-Refresher? Dann schau dir unbedingt den DataCamp-Kurs Introduction to MongoDB in Python an. 

Was ist der FastAPI Application Generator?

Der FARM-Generator automatisiert die Erstellung eines kompletten Web-Stacks mit folgenden Komponenten:

  • Full-Stack-Setup: Generiert ein FastAPI-Backend, ein React-Frontend und eine MongoDB-Datenbank – nahtlos integriert für schnelles Development.
  • Vorkonfigurierte Authentifizierung: Enthält OAuth2 mit JWT, Magic-Link-Login und Cookie-Management für sicheren Zugriff. OAuth2 mit JWT ist wie ein sicherer „VIP-Pass“ (JWT-Code), den du nach dem Login erhältst, um private Bereiche zu betreten.
  • Docker-Compose-Integration: Liefert vorkonfigurierte Docker-Compose-Dateien für einfaches lokales Development und Testing.
  • Betriebstools: Integriert Celery für asynchrone Aufgabenverarbeitung, Traefik für Load-Balancing und GitHub Actions für CI/CD – für eine produktionsreife Umgebung.

Die vollständigen Features findest du im GitHub-Repo.

Vorteile für Entwicklerinnen und Entwickler

Der FARM-Generator bietet klare Mehrwerte:

  • Zeit sparen: Spart repetitive Setups wie Authentifizierung oder Datenbankverbindungen – du kannst sofort loscodieren.
  • Best Practices: Sorgt für eine skalierbare, sichere und wartbare Projektstruktur nach Branchenstandards.
  • Flexibilität: Bietet eine anpassbare Basis, die du für spezifische Anforderungen erweitern kannst.

So startest du den MongoDB FastAPI Application Generator

Um die Möglichkeiten zu zeigen, richten wir ein Beispielprojekt ein. Die folgenden Schritte setzen Python 3.8+, Node.js, Docker und Docker Compose voraus.

Schritt-für-Schritt-Setup

Zur Demonstration erstellen wir ein Musterprojekt namens task-manager. Stelle sicher, dass Folgendes installiert ist:

  • Python 3.11+: Am besten 3.12, prüfbar mit python3.12 --version.
  • Node.js: Für das React-Frontend.
  • Docker Desktop: Für containerisiertes Development.
  • MongoDB: Lokal (z. B. via Homebrew mit brew install mongodb-community@7.0) oder MongoDB Atlas (verwende eine Verbindungs-URI wie mongodb+srv://:@cluster0.mongodb.net/?retryWrites=true&w=majority).
  • Cookiecutter: Zum Generieren des Projekt-Templates.
  • Hatch: Für das Abhängigkeitsmanagement.
  • MongoDB Compass (optional): Zur Visualisierung der Datenbank.

Lege vorab eine virtuelle Umgebung an mit /usr/local/bin/python3.12 -m venv task-manager-venv und aktiviere sie mit source task-manager-venv/bin/activate.

  1. Installiere die Cookiecutter-Bibliothek: pip install cookiecutter
  2. Generiere das Projekt: Nutze den FARM-Generator, um ein Projekt zu erstellen:
cookiecutter https://github.com/mongodb-labs/full-stack-fastapi-mongodb --no-input project_name="task-manager"
cd task-manager
  1. Installiere MongoDB lokal oder nutze MongoDB Atlas:
brew tap mongodb/brew
brew install mongodb-community@7.0
brew services start mongodb-community@7.0

Für Atlas registrierst du dich, erstellst einen kostenlosen Cluster und holst dir einen Connection-String (z. B. mongodb+srv://:@cluster0.mongodb.net/?retryWrites=true&w=majority) für deine .env-Datei.

  1. Umgebungsvariablen konfigurieren: 

Kopiere und bearbeite die .env-Datei:

cp .env.example .env
nano .env

Ergänze deine MongoDB-URI, den Datenbanknamen und Secrets:

MONGODB_URI=mongodb://localhost:27017
MONGO_DATABASE=task_manager
SECRET_KEY=your-secret-key
FIRST_SUPERUSER=admin@task-manager.com
FIRST_SUPERUSER_PASSWORD=changethis
  1. Mit Docker Compose bauen und starten:

Stelle sicher, dass Docker Desktop läuft, dann:

docker compose build --no-cache
  1. docker compose up -d
  2. Greife auf die Anwendung zu:
    • Frontend: http://localhost:3000
    • Backend: http://localhost/api/v1
    • Swagger UI: http://localhost/docs (interaktive API-Dokumentation)
    • ReDoc: http://localhost/redoc
    • Flower: http://localhost:5555 (Celery-Monitoring)
    • Traefik UI: http://localhost:8090 (Routing-Dashboard)
  3. Logge dich ein mit admin@task-manager.com (Passwort: changethis).
  4. Teste die Authentifizierung: Nutze die Swagger UI (/docs), um die Endpunkte /auth/login oder /auth/magic-link zu testen.
  5. Richte CI/CD ein: Push auf GitHub, um die mitgelieferten GitHub-Actions-Workflows zu starten.

FastAPI/React Screenshot fürs Frontend

Erkunde die generierte Full-Stack-Projektstruktur

Wenn du den FARM-Generator nutzt, entsteht ein Task-Manager-Projekt mit sauberer Struktur. Stell es dir wie ein fertiges Haus vor, in dem jeder Raum eine Aufgabe hat:

  • backend/: Die „Küche“, in der das FastAPI-Backend arbeitet. Enthält Ordner wie app/ (für deinen API-Code) und conf/ (für Einstellungen), um Aufgaben und Daten zu verarbeiten.

Verzeichnis mit enthaltenen Ordnern

  • frontend/: Das „Wohnzimmer“, in dem Nutzerinnen und Nutzer deine Website sehen – auf Basis von Next.js/React. Der Ordner app/ enthält Seiten (z. B. about, TaskList) mit Dateien wie layout.tsx (Rahmen) und page.tsx (Inhalt). Im Ordner public/ liegen u. a. die Website-Icons.

Frontend-Verzeichnis

  • Weitere Dateien: Du findest docker-compose.yml (zum Starten via Docker), .env (deine geheimen Einstellungen) und .github/workflows/ (für automatisierte Tests beim Teilen deines Codes).

Dieses Setup ist bereit zu wachsen – und der Generator bringt hilfreiche Tools mit, die die Entwicklung beschleunigen!

Was du mit den Features des Generators bauen kannst

Der FARM-Generator liefert starke Tools, mit denen du viele Projekttypen umsetzen kannst. Hier eine einfache Übersicht, was sie tun und wie sie helfen:

Docker-Compose-Integration: Optimiert für lokale Entwicklung

  • Was sie tut: Docker Compose ist wie ein magischer Knopf, der dein gesamtes Projekt (Backend, Frontend, Datenbank) mit einem Befehl startet. Container halten alles sauber getrennt – perfekt fürs lokale Testen.
  • Wie sie hilft: Du startest deine Task-Manager-App mit docker compose up -d und stoppst sie mit docker compose down. Ideal, um Ideen auszuprobieren, ohne dein System zu „verstellen“. Mit docker compose ps siehst du den Status – steht überall „Up“, passt es!

Beispiel: Nach dem Setup einfach ausführen:

cd task-manager
docker compose up -d

Öffne http://localhost:3000 für das Frontend – schon läuft alles lokal!

Docker: Lokales Setup aller Komponenten

Integriertes Authentifizierungssystem

  • Was es tut: Fügt ein Login-System mit Benutzerkonten hinzu, inkl. Default-Superuser (z. B. admin@task-manager.com mit Passwort changethis). Es nutzt OAuth2 mit JWT-Tokens (sichere Login-Codes) und Magic Links (Login per E-Mail-Link).
  • Wie es hilft: Nutzer können sich registrieren, einloggen oder per Magic Link zugreifen. Probiere es in der Swagger UI unter http://localhost/docs – suche /api/v1/login/oauth, um den Login zu testen. Ideal für Apps mit geschützten Bereichen wie privaten Aufgabenlisten.

Beispiel: Logge dich mit dem Standardnutzer ein:

  1. Gehe zu http://localhost/docs.
  2. Finde /api/v1/login/oauth, gib admin@task-manager.com und das Passwort ein, und klicke auf „Execute“. Du erhältst ein JWT-Token für private Seiten!

task-manager API

Die Task-Manager-API

Demo für OAuth-API

Demo der OAuth-API

Antwort der OAuth-API

Antwort der OAuth-API

FastAPI-Backend-Features

Ein Blick auf die wichtigsten Features des FastAPI-Backends – und wie sie Datenbankoperationen, API-Design und Skalierung vereinfachen.

  • MongoDB Motor: Der „Motor“, der extrem schnell mit deiner MongoDB spricht – auch bei vielen gleichzeitigen Anfragen.
  • MongoDB ODMantic: Ein Helfer, der Speichern und Finden von Daten in MongoDB vereinfacht – wie Aufgaben sauber sortieren.
  • CRUD out of the box: CRUD steht für Create, Read, Update, Delete. Du bekommst fertige Werkzeuge, um Daten (z. B. Tasks) anzulegen, anzuzeigen, zu ändern oder zu löschen – ohne bei null zu starten.
  • Standards-basiert: Hält sich an OpenAPI und JSON Schema – deine API ist klar definiert und kompatibel mit Tools und anderen Apps.
  • Wie es hilft: Du baust schnell ein Backend zum Speichern von Tasks. Der Generator richtet alles ein – du ergänzt nur eigene Logik, z. B. neue Task-Features.

Beispiel: Schneller Task-Viewer in backend/app/api/tasks.py:

from fastapi import APIRouter, Depends
from odmantic import AIOEngine, Model
from motor.motor_asyncio import AsyncIOMotorClient
router = APIRouter(prefix="/tasks", tags=["tasks"])
class Task(Model):
    title: str
async def get_db():
    client = AsyncIOMotorClient("mongodb://localhost:27017")
    return AIOEngine(client, database="task_manager")
@router.get("/")  # View all tasks
async def get_tasks(db: AIOEngine = Depends(get_db)):
    return await db.find(Task)

Teste es unter http://localhost/api/v1/tasks, nachdem du mit docker compose up --build neu gebaut hast.

Next.js/React-Frontend

Das React-Frontend ist die Interaktionsoberfläche deiner App. So ist es aufgebaut – und diese Tools helfen dir beim Erstellen moderner, responsiver Seiten.

  • Middleware-Authorisierung: Agiert als Türsteher und prüft Logins, bevor bestimmte Seiten sichtbar werden (z. B. /TaskList nur für eingeloggte Nutzer).
  • Formularvalidierung mit React Hook Form: Stellt sicher, dass Formulare (z. B. „Task hinzufügen“) korrekt ausgefüllt sind – leere Tasks rutschen nicht durch.
  • State-Management mit Redux: Hält Zustände im Blick, z. B. welche Tasks ausgewählt sind – für flüssige UIs auch bei viel Daten.
  • CSS & Templates mit TailwindCSS, HeroIcons und HeadlessUI: Vorgefertigte Design-Bausteine: TailwindCSS für Styles, HeroIcons für Icons und HeadlessUI für bedienfertige Komponenten wie Buttons und Menüs.
  • Wie es hilft: Du baust schnell eine ansprechende Task-Seite mit validierten Formularen und gesichertem Zugriff. Das Grunddesign steht – du fokussierst dich auf Features.

Beispiel: Einfaches Task-Formular in frontend/app/TaskList/page.tsx:

import { useState } from 'react';
export default function TaskList() {
  const [task, setTask] = useState({ title: '' });
  const handleSubmit = (e: React.FormEvent) => {
    e.preventDefault();
    fetch('http://localhost/api/v1/tasks', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(task),
    });
    setTask({ title: '' });
  };
  return (
    <div className="container mx-auto p-4">
      <h1 className="text-2xl font-bold">Add Task</h1>
      <form onSubmit={handleSubmit}>
        <input
          className="border p-2"
          value={task.title}
          onChange={e => setTask({ title: e.target.value })}
          placeholder="Task name"
        />
        <button className="bg-blue-500 text-white p-2" type="submit">Add</button>
      </form>
    </div>
  );
}

Besuche http://localhost:3000/TaskList, um eine Aufgabe hinzuzufügen.

Task hinzufügen

Deinen Task-Manager ausbauen

Der Generator liefert ein starkes Fundament. Zum Beispiel kannst du:

  • Einen Button hinzufügen, um Aufgaben als erledigt zu markieren – per CRUD-Logik.
  • Mit Authentifizierung deine Liste privat halten.
  • Mit TailwindCSS das Design aufwerten.
  • Celery einrichten, um Erinnerungen per E-Mail zu senden.

Weitere Ideen

Mit diesen Features kannst du mehr als nur einen Task-Manager bauen:

  • Blog oder Website: Beiträge in MongoDB speichern, mit FastAPI ausspielen und mit Next.js gestalten.
  • Onlineshop: Produkte in MongoDB, Bestellungen via Celery verarbeiten, Shop-Frontend mit Next.js.
  • Live-Updates: Echtzeitinfos (z. B. Spielstände) mit MongoDB, FastAPI-Streaming und einem Next.js-Dashboard.

Fazit

Der FARM-Generator verschlankt die Full-Stack-Entwicklung mit einem vorkonfigurierten, produktionsreifen Stack aus FastAPI, React und MongoDB. Automatisierte Setups, Best Practices und flexible Architektur machen ihn zu einem wertvollen Tool für Python-Entwicklerinnen und -Entwickler. Ob Task-Manager oder komplexe Webanwendung – der Generator beschleunigt die Entwicklung und sorgt für Skalierbarkeit. Probiere es aus, folge der Anleitung und stöbere im GitHub-Repository, um das volle Potenzial zu nutzen!

Wenn du tiefer einsteigen willst, helfen dir diese Ressourcen weiter:

  • Offizielles Repository: Durchstöbere den Quellcode, lies die Doku, verfolge Updates oder trage bei.
  • FastAPI-Dokumentation: Erfahre mehr über FastAPI und wie es das Backend antreibt.
  • Introduction to FastAPI Course: Baue robuste, produktionsreife APIs mit FastAPI – meistere HTTP-Operationen, Validierung und asynchrone Ausführung für effiziente Daten- und ML-Pipelines.

FAQs

Why should I use the FARM generator?

Er hilft dir, Projekte schnell nach Branchenstandards zu starten – inklusive Sicherheit (OAuth2/JWT), Skalierbarkeit (Docker/Celery) und Wartbarkeit. Statt alles manuell zu konfigurieren, kannst du direkt mit dem Feature-Bau loslegen.

Can I use the FARM generator if I’m new to web development?

Auf jeden Fall! Der Generator übernimmt komplexe Setups (z. B. Authentifizierung und Docker), damit Einsteigerinnen und Einsteiger FastAPI, React oder MongoDB lernen können, ohne am Setup zu scheitern. Grundkenntnisse in Python und JavaScript helfen bei der Anpassung.

Can I use this for mobile app development?

Ja. Der Generator erstellt zwar eine Webanwendung, aber du kannst das FastAPI-Backend über seine APIs auch mit Mobile-Apps nutzen. Das React-Frontend lässt sich zudem mit Frameworks wie React Native für mobile nutzen – hierfür ist zusätzliches Setup nötig.

Can I deploy my app online for others to use?

Ja – dank Docker und CI/CD-Setup kannst du auf Dienste wie AWS, GCP, DigitalOcean, Heroku und viele weitere deployen.

Can I use this without knowing Docker?

Ja, aber mit Docker wird es deutlich einfacher. Ohne Docker müsstest du MongoDB separat installieren und Server manuell starten.


Karen Zhang's photo
Author
Karen Zhang
LinkedIn

Karen ist eine Dateningenieurin mit einer Leidenschaft für den Aufbau skalierbarer Datenplattformen. Sie hat Erfahrung mit der Automatisierung von Infrastrukturen mit Terraform und freut sich darauf, ihre Erfahrungen in Blogbeiträgen und Tutorials zu teilen. Karen ist eine Community-Builderin und setzt sich leidenschaftlich für die Förderung von Verbindungen zwischen Datenexperten ein.

Themen
MongoDB
Datentechnik

Top-DataCamp-Kurse

Kurs

Einführung in MongoDB mit Python

3 Std.
24.3K
Lerne, wie du flexibel strukturierte Daten mit MongoDB bearbeiten und analysieren kannst.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Verwandt

Blog

Top 50+ AWS-Interviewfragen und Antworten für 2026

Ein kompletter Guide mit grundlegenden, fortgeschrittenen und szenariobasierten AWS-Interviewfragen – mit Beispielen aus der Praxis.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Tutorial

Python Datenstrukturen Tutorial

Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Sejal Jaiswal's photo

Sejal Jaiswal

24 Min.

Tutorial

Fibonacci-Folge in Python: Lerne und entdecke Programmiertechniken

Finde raus, wie die Fibonacci-Folge funktioniert. Schau dir die mathematischen Eigenschaften und die Anwendungen in der echten Welt an.
Laiba Siddiqui's photo

Laiba Siddiqui

6 Min.

Tutorial

Python-Lambda-Funktionen: Ein Leitfaden für Anfänger

Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Mark Pedigo's photo

Mark Pedigo

10 Min.

Tutorial

Python-Arrays

Python-Arrays mit Code-Beispielen. Lerne noch heute, wie du mit Python NumPy Arrays erstellen und ausdrucken kannst!
DataCamp Team's photo

DataCamp Team

3 Min.

Tutorial

Python JSON-Daten: Ein Leitfaden mit Beispielen

Lerne, wie man mit JSON in Python arbeitet, einschließlich Serialisierung, Deserialisierung, Formatierung, Leistungsoptimierung, Umgang mit APIs und Verständnis der Einschränkungen und Alternativen von JSON.
Moez Ali's photo

Moez Ali

6 Min.

Mehr AnzeigenMehr Anzeigen