- Ein Web-Framework, das dafür entwickelt wurde, Produkte schnell mit Python zu entwickeln (ein Fork von Django)
- Die lokale Entwicklung kann mit einem einzigen Kommando gestartet werden und über Dashboard und Feature Flags in die Produktion überführt werden
- Für einen schnellen Start kann ein Starter-Kit geklont werden
- Besteht aus dem Kernpaket
plain und offiziell unterstützten Erweiterungspaketen, die optional installiert werden können
Funktionen des Pakets plain
- Verknüpft URL-Muster mit Python-View-Funktionen
- Verarbeitet HTTP-Anfragen und -Antworten
- HTML-Rendering mit Jinja-Templates
- Formulare zur Verarbeitung von Benutzereingaben
- Stellt eine Kommandozeilenschnittstelle (CLI) bereit
- Kann statische Assets wie CSS, JS und Bilder ausliefern
- Erweitert App-Funktionen über Middleware
- Offizielle und Third-Party-Pakete lassen sich leicht integrieren
- Bietet ein Preflight-Check-System vor dem Start der App
Erweiterte Funktionen durch First-Party-Pakete
- plain.models: Bietet ein ORM zum Speichern von Daten in Postgres, MySQL und SQLite
- plain.cache: Eine Caching-Lösung, die zusammen mit der bestehenden Datenbank arbeitet
- plain.email: Bietet E-Mail-Konfiguration und -Versand für die gesamte App
- plain.sessions: Unterstützt das Lesen und Schreiben datenbankbasierter Sessions
- plain.worker: Eine Background-Job-Lösung mit Unterstützung für die bestehende Datenbank
- plain.api: Ermöglicht den Aufbau von JSON-APIs mit einer klassenbasierten View-Architektur
Authentifizierung
- plain.auth: Bietet die Grundlage zum Hinzufügen von Benutzern, zur Authentifizierung von Anfragen und zum Einschränken von Views
- plain.oauth: Eine flexible OAuth-Lösung, die modernes Social Login und API-Zugriff unterstützt
- plain.passwords: Unterstützt klassisches passwortbasiertes Login
- plain.loginlink: Bietet Einmal-Login-Links für die Anmeldung ohne Passwort
- plain.passkeys: Passwortlose Anmeldung ist geplant
Administration
- plain.admin: Bietet ein vollständig anpassbares Admin-Dashboard
- plain.flags: Datenbankbasierte Feature Flags zur Steuerung von Inhalten pro Benutzer
- plain.support: Ermöglicht Kundensupport ohne Drittanbieterdienste
- plain.redirection: 404-Monitoring und Verwaltung von Weiterleitungen in der Datenbank
- plain.pageviews: Zeigt, was Benutzer sehen, um besseren Support zu ermöglichen
Entwicklung
- plain.dev: Startet die lokale Entwicklungsumgebung mit einem einzigen Kommando
- plain.pytest: Ermöglicht das Schreiben und Ausführen von Tests mit einer beliebten Python-Testbibliothek
- plain.code: Ermöglicht Python-Code-Formatierung und Linting mit Standardeinstellungen
- plain.tunnel: Macht lokale Apps für Webhook-Integrationen über das Internet erreichbar
Frontend
- plain.tailwind: Bietet First-Class-Integration mit einem beliebten CSS-Framework
- plain.htmx: Ermöglicht den Aufbau moderner Nutzererlebnisse mit vorhandenen Tools
- plain.elements: Bietet ein neues Paradigma für wiederverwendbare Komponenten in den Templates einer App
- plain.pages: Bietet dateibasiertes Routing mit HTML und Markdown
- plain.esbuild: Bietet einen vereinfachten Build-Prozess für die JavaScript-Kompilierung
- plain.vendor: Ermöglicht das Herunterladen und Self-Hosting von JavaScript- und CSS-Assets ohne Abhängigkeit von einem CDN
1 Kommentare
Hacker-News-Kommentare
Vielen ist vielleicht nicht bewusst, dass der Bug-Tracker des Django Rest Framework auf privat umgestellt wurde und nach neuen Maintainer:innen gesucht wird
Ich habe gemischte Gefühle bei einem Fork von Django
Djangos Stärke liegt im ORM sowie im Ökosystem und seinen Idiomen
Django hat einige Schwächen
Ich bin überrascht von den negativen Gefühlen gegenüber Django
Ich bin von Django zu Supabase/Firebase gewechselt
Ich mag es nicht, dass die Konfiguration aus Strings besteht, die auf Klassen verweisen
Ich habe mir die Dokumentation von Plain angesehen
Ich weiß nicht, ob Plain erfolgreich sein wird, aber ich verstehe die Gründe für den Fork