Habilidades python-database-patterns
🗄️

python-database-patterns

Seguro

Python-Datenbankmuster mit SQLAlchemy implementieren

También disponible en: 0xDarkMatter

Das Schreiben von Datenbankcode ist komplex und fehleranfällig. Diese Fähigkeit bietet erprobte SQLAlchemy 2.0-Muster für Modelle, Abfragen, asynchrone Sessions, Transaktionen und Migrationen.

Soporta: Claude Codex Code(CC)
🥉 72 Bronce
1

Descargar el ZIP de la skill

2

Subir en Claude

Ve a Configuración → Capacidades → Skills → Subir skill

3

Activa y empieza a usar

Pruébalo

Usando "python-database-patterns". Create a User model with email unique constraint and a relationship to Post

Resultado esperado:

  • - User-Klasse mit zugeordneten Spalten definieren
  • - Unique-Constraint auf E-Mail-Feld hinzufügen
  • - One-to-Many-Beziehung zu Post-Modell erstellen
  • - back_populates für bidirektionale Navigation verwenden

Auditoría de seguridad

Seguro
v3 • 1/10/2026

Documentation-only skill containing educational SQLAlchemy patterns. No executable code, no network calls, no credential access, no malicious patterns detected.

6
Archivos escaneados
1,473
Líneas analizadas
0
hallazgos
3
Auditorías totales
No se encontraron problemas de seguridad

Puntuación de calidad

59
Arquitectura
100
Mantenibilidad
81
Contenido
22
Comunidad
100
Seguridad
70
Cumplimiento de la especificación

Lo que puedes crear

SQLAlchemy 2.0 lernen

Beginnen Sie mit modernen SQLAlchemy-Mustern für deklarative Modelle und typsichere Abfragen

Asynchrone API-Backends erstellen

FastAPI-Endpunkte mit asynchronen Datenbanksessions und Transaktionsmanagement implementieren

Datenbankschemas verwalten

Alembic-Migrationen einrichten und Connection-Pools für Produktionsdatenbanken konfigurieren

Prueba estos prompts

Ein Modell definieren
Erstellen Sie ein SQLAlchemy 2.0-Modell namens Product mit id, name, price und category-Beziehung
Asynchrone Abfrage schreiben
Schreiben Sie eine asynchrone Funktion, um einen Benutzer nach E-Mail mit seinen Posts eager geladen abzurufen
Transaktion behandeln
Implementieren Sie eine transfer_funds-Funktion mit pessimistischem Locking, um Race Conditions zu verhindern
Pool konfigurieren
Zeigen Sie mir, wie ich Connection-Pool-Größe, Overflow und Pre-Ping für eine Produktions-PostgreSQL-async-Engine konfiguriere

Mejores prácticas

  • SQLAlchemy 2.0 deklarativen Stil mit Mapped und mapped_column für Typsicherheit verwenden
  • session.execute mit select() gegenüber der legacy session.query()-Methode bevorzugen
  • pool_pre_ping=True konfigurieren, um fehlerhafte Verbindungen vor Abfragen zu erkennen
  • Eager Loading (selectinload/joinedload) verwenden, um N+1-Abfragen in asynchronen Kontexten zu vermeiden

Evitar

  • Lazy Loading in asynchronen Sessions verursacht MissingGreenlet-Fehler
  • session.commit() innerhalb von session.begin() aufrufen erstellt verschachtelte Transaktionsprobleme
  • Datenbank-URLs hardcodieren statt Umgebungskonfiguration zu verwenden
  • pool_recycle überspringen, was dazu führt, dass Verbindungen nach langen Abfragen timeouten

Preguntas frecuentes

Welche SQLAlchemy-Versionen werden unterstützt?
SQLAlchemy 2.0+ mit Python 3.10+. Async erfordert asyncpg für PostgreSQL oder aiosqlite für SQLite.
Kann ich dies mit FastAPI verwenden?
Ja. Die Fähigkeit enthält FastAPI-Dependency-Injection-Muster für asynchrone Datenbanksessions.
Wie dimensioniere ich den Connection-Pool?
Beginnen Sie mit pool_size=5 und max_overflow=10. Passen Sie dies basierend auf gleichzeitigen Benutzern und Abfragemustern an.
Sind meine Daten bei diesen Mustern sicher?
Ja. Die Muster umfassen Transaktionssicherheit, optimistisches Locking und richtiges Session-Lebenszyklusmanagement.
Warum schlagen meine asynchronen Abfragen fehl?
Häufige Ursachen sind Lazy Loading ohne Eager Loading, nicht festgeschriebene Transaktionen oder Connection-Pool-Erschöpfung.
Wie vergleicht sich dies mit rohem SQL?
SQLAlchemy bietet Typsicherheit und Abstraktion, während es optimiertes SQL generiert. Verwenden Sie text() für rohe Abfragen bei Bedarf.

Detalles del desarrollador