Projekte erstellen
Eine ausführliche Anleitung zum Erstellen verschiedener Arten von FastAPI-Projekten mit FastAPI-fastkit.
Grundlegende Projekterstellung
1. Projekterstellung im interaktiven Modus
Die einfachste Möglichkeit, ein Projekt interaktiv zu erstellen:
$ fastkit init
Enter the project name: my-awesome-api
Enter the author name: John Doe
Enter the author email: john@example.com
Enter the project description: Awesome FastAPI project
Project Information
┌──────────────┬─────────────────────────┐
│ Project Name │ my-awesome-api │
│ Author │ John Doe │
│ Author Email │ john@example.com │
│ Description │ Awesome FastAPI project │
└──────────────┴─────────────────────────┘
2. Stack-Auswahl
Wählen Sie den Abhängigkeits-Stack, den Sie in Ihr Projekt aufnehmen möchten:
MINIMAL-Stack (Standard)
Das schlichteste FastAPI-Projekt:
fastapi— FastAPI-Frameworkuvicorn— ASGI-Serverpydantic— Datenvalidierungpydantic-settings— Einstellungsverwaltung
Am besten für:
- FastAPI lernen
- Einfache APIs
- Prototypen
- Microservices
STANDARD-Stack
Enthält Datenbankunterstützung und Tests:
- Alle MINIMAL-Abhängigkeiten
sqlalchemy— ORM für Datenbankoperationenalembic— Datenbankmigrationenpytest— Test-Framework
Am besten für:
- Die meisten Webanwendungen
- APIs mit Datenbankspeicherung
- Produktionsreife Anwendungen
- Teamprojekte
FULL-Stack
Vollständige Entwicklungsumgebung:
- Alle STANDARD-Abhängigkeiten
redis— Caching und Session-Speichercelery— Verarbeitung von Hintergrundaufgaben
Am besten für:
- Große Anwendungen
- Hohe Leistungsanforderungen
- Komplexe Geschäftslogik
- Unternehmensanwendungen
Erweiterte Projektoptionen
Benutzerdefinierte Projektkonfiguration
Sie können Ihr Projekt während der Erstellung anpassen:
$ fastkit init
Enter the project name: advanced-api
Enter the author name: Development Team
Enter the author email: dev@company.com
Enter the project description: Advanced FastAPI application with custom features
# Choose STANDARD stack for database support
Select stack (minimal, standard, full): standard
Do you want to proceed with project creation? [y/N]: y
Erklärung der Projektstruktur
Wenn Sie ein Projekt erstellen, generiert FastAPI-fastkit folgende Struktur:
my-awesome-api/
├── .venv/ # Virtuelle Umgebung
├── src/ # Quellcode
│ ├── __init__.py
│ ├── main.py # Einstiegspunkt der Anwendung
│ ├── core/ # Zentrale Konfiguration
│ │ ├── __init__.py
│ │ └── config.py # Einstellungen und Konfiguration
│ ├── api/ # API-Schicht
│ │ ├── __init__.py
│ │ ├── api.py # Haupt-Router der API
│ │ └── routes/ # Einzelne Routenmodule
│ │ ├── __init__.py
│ │ └── items.py # Beispiel-Endpunkte für Items
│ ├── crud/ # Datenbankoperationen
│ │ ├── __init__.py
│ │ └── items.py # CRUD-Operationen für Items
│ ├── schemas/ # Pydantic-Modelle
│ │ ├── __init__.py
│ │ └── items.py # Schemas zur Datenvalidierung
│ └── mocks/ # Testdaten
│ ├── __init__.py
│ └── mock_items.json # Beispieldaten für die Entwicklung
├── tests/ # Testsuite
│ ├── __init__.py
│ ├── conftest.py # Testkonfiguration
│ └── test_items.py # Beispieltests
├── scripts/ # Hilfsskripte
│ ├── test.sh # Tests ausführen
│ ├── coverage.sh # Testabdeckung
│ └── lint.sh # Code-Linting
├── requirements.txt # Python-Abhängigkeiten
├── setup.py # Paketkonfiguration
└── README.md # Projektdokumentation
3. Paketmanager-Auswahl
FastAPI-fastkit unterstützt mehrere Python-Paketmanager. Wählen Sie den, der am besten zu Ihrem Workflow passt:
Verfügbare Paketmanager
Available Package Managers:
Package Managers
┌────────┬────────────────────────────────────────────┐
│ PIP │ Standard Python package manager │
│ UV │ Fast Python package manager │
│ PDM │ Modern Python dependency management │
│ POETRY │ Python dependency management and packaging │
└────────┴────────────────────────────────────────────┘
Select package manager (pip, uv, pdm, poetry) [uv]: uv
Jeder Paketmanager hat seine Stärken:
UV (Standard — empfohlen)
Schneller Paketmanager auf Rust-Basis
- ⚡ Ultraschnell: 10–100× schneller als pip
- 🔧 Direkter Ersatz: kompatibel mit pip-Workflows
- 📦 Modern: vollständige PEP-621-Unterstützung
- 🛠️ Zuverlässig: deterministische Auflösung
Generierte Dateien:
pyproject.toml(PEP-621-Format)uv.lock(Lockfile)
Nutzung nach der Erstellung:
cd my-project
uv sync # Abhängigkeiten installieren
uv add requests # Neue Abhängigkeit hinzufügen
uv run pytest # Tests ausführen
PDM
Moderne Python-Abhängigkeitsverwaltung
- 🚀 Modern: Unterstützung von PEP 582 und PEP 621
- 🧠 Intelligent: fortgeschrittene Abhängigkeitsauflösung
- 💼 Professionell: Unterstützung für Workspaces und Multi-Projekt-Setups
- 📊 Analytisch: Werkzeuge zur Analyse der Abhängigkeiten
Generierte Dateien:
pyproject.toml(PEP-621-Format)pdm.lock(Lockfile)
Nutzung nach der Erstellung:
cd my-project
pdm install # Abhängigkeiten installieren
pdm add requests # Neue Abhängigkeit hinzufügen
pdm run pytest # Tests ausführen
Poetry
Ausgereifte Abhängigkeitsverwaltung und Packaging
- ✅ Etabliert: ausgereift und weit verbreitet
- 📦 Integriert: Unterstützung für Build und Veröffentlichung
- 🔒 Reproduzierbar: poetry.lock für exakte Versionen
- 🏗️ Komplett: vollständige Verwaltung des Projektlebenszyklus
Generierte Dateien:
pyproject.toml(Poetry-Format)poetry.lock(Lockfile)
Nutzung nach der Erstellung:
cd my-project
poetry install # Abhängigkeiten installieren
poetry add requests # Neue Abhängigkeit hinzufügen
poetry run pytest # Tests ausführen
PIP
Standard-Python-Paketmanager
- 🏠 Eingebaut: in Python enthalten
- 🌍 Universell: funktioniert überall
- 📚 Vertraut: die meisten Entwickler kennen ihn
- 🔧 Einfach: geradliniger Workflow
Generierte Dateien:
requirements.txt
Nutzung nach der Erstellung:
cd my-project
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
pip install -r requirements.txt
pip install requests
pytest
Paketmanager angeben
Sie können Ihren bevorzugten Paketmanager angeben:
Interaktive Auswahl (Standard):
Kommandozeilenoption:
$ fastkit init --package-manager poetry
$ fastkit init --package-manager pdm
$ fastkit init --package-manager uv
$ fastkit init --package-manager pip
Die einzelnen Verzeichnisse verstehen
src/-Verzeichnis
Enthält den gesamten Quellcode Ihrer Anwendung nach dem src-Layout-Muster, einer Best Practice für Python-Packaging.
core/-Modul
- config.py: Anwendungseinstellungen, Umgebungsvariablen und Konfiguration
- Zentralisiert die gesamte Konfigurationsverwaltung
- Unterstützt eine
.env-Datei für umgebungsspezifische Einstellungen
api/-Modul
- api.py: Haupt-API-Router, der alle Unter-Router einbindet
- routes/: einzelne Routenmodule für verschiedene Ressourcen
- Saubere Trennung der Zuständigkeiten für verschiedene API-Endpunkte
crud/-Modul
- Datenbankoperationen und Geschäftslogik
- Create, Read, Update, Delete
- Abstraktionsschicht zwischen API-Routen und Datenspeicher
schemas/-Modul
- Pydantic-Modelle zur Datenvalidierung
- Anfrage-/Antwortschemata
- Typdefinitionen und Datenmodelle
tests/-Verzeichnis
- Vollständige Test-Suite für Ihre Anwendung
- Enthält Unit-Tests und Integrationstests
- Vorkonfiguriert mit pytest
Stack-Vergleich
| Funktion | MINIMAL | STANDARD | FULL |
|---|---|---|---|
| FastAPI & Uvicorn | ✅ | ✅ | ✅ |
| Datenvalidierung | ✅ | ✅ | ✅ |
| Datenbankunterstützung | ❌ | ✅ | ✅ |
| Migrationen | ❌ | ✅ | ✅ |
| Test-Framework | ❌ | ✅ | ✅ |
| Caching (Redis) | ❌ | ❌ | ✅ |
| Hintergrundaufgaben | ❌ | ❌ | ✅ |
| Am besten für | Lernen, einfache APIs | Die meisten Anwendungen | Enterprise, komplexe Apps |
Beispiele zur Projekterstellung
Beispiel 1: Lernprojekt
Beispiel 2: E-Commerce-API
Beispiel 3: Hochleistungsanwendung
$ fastkit init
Enter the project name: enterprise-api
Enter the author name: Enterprise Team
Enter the author email: enterprise@company.com
Enter the project description: High-performance enterprise API
Select stack (minimal, standard, full): full
Do you want to proceed with project creation? [y/N]: y
Nach der Projekterstellung
1. Virtuelle Umgebung aktivieren
2. Installation überprüfen
3. Mit der Entwicklung beginnen
Konfigurationsverwaltung
Umgebungsvariablen
Ihr Projekt unterstützt umgebungsbasierte Konfiguration über .env-Dateien:
Erstellen Sie eine .env-Datei im Projekt-Stammverzeichnis:
# .env
APP_NAME=My Awesome API
APP_VERSION=1.0.0
DEBUG=True
DATABASE_URL=sqlite:///./app.db
SECRET_KEY=your-secret-key-here
Konfiguration im Code
Die generierte src/core/config.py lädt diese Variablen automatisch:
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
APP_NAME: str = "FastAPI Application"
APP_VERSION: str = "1.0.0"
DEBUG: bool = False
DATABASE_URL: str = "sqlite:///./app.db"
SECRET_KEY: str = "dev-secret-key"
class Config:
env_file = ".env"
settings = Settings()
Anpassungsmöglichkeiten
Benutzerdefinierte Abhängigkeiten hinzufügen
Nach der Projekterstellung können Sie weitere Abhängigkeiten hinzufügen:
Projektstruktur anpassen
Die generierte Struktur folgt Best Practices, lässt sich aber anpassen:
- Neue Module in
src/hinzufügen - Weitere Routendateien in
api/routes/anlegen - CRUD-Operationen in
crud/erweitern - Weitere Schemata in
schemas/hinzufügen
Best Practices
1. Virtuelle Umgebung
Verwenden Sie immer virtuelle Umgebungen, um Projektabhängigkeiten zu isolieren:
# Create project with virtual environment
$ fastkit init # Automatically creates .venv/
# Activate when working
$ source .venv/bin/activate
2. Versionsverwaltung
Initialisieren Sie ein Git-Repository nach der Projekterstellung:
3. Umgebungskonfiguration
- Verwenden Sie
.env-Dateien für die lokale Entwicklung - Verwenden Sie Umgebungsvariablen für die Produktion
- Committen Sie niemals sensible Daten in die Versionsverwaltung
4. Testen
Nutzen Sie das mitgelieferte Test-Framework:
Nächste Schritte
Nachdem Sie Ihr Projekt erstellt haben:
- Routen hinzufügen: lernen Sie, wie Sie neue API-Endpunkte hinzufügen
- CLI-Referenz: meistern Sie alle verfügbaren Befehle
- Tutorial – Ihr erstes Projekt: bauen Sie eine vollständige Anwendung
Tipps zur Projekterstellung
- Wählen Sie den Stack, der zu Ihren Projektanforderungen passt
- Beginnen Sie mit MINIMAL zum Lernen, nutzen Sie STANDARD für die meisten Projekte
- Die Projektstruktur ist auf Skalierbarkeit und Wartbarkeit ausgelegt
- Der gesamte generierte Code folgt FastAPI-Best-Practices