- Un framework web conçu pour permettre de créer rapidement des produits avec Python (fork de Django)
- Il est possible de démarrer le développement local avec une seule commande, puis de passer en production via un tableau de bord et des feature flags
- Clonez le starter kit pour démarrer rapidement
- Composé du paquet principal
plain et de paquets d’extension officiels pouvant être installés de manière optionnelle
Fonctionnalités du paquet plain
- Associe des motifs d’URL à des fonctions de vue Python
- Traite les requêtes et réponses HTTP
- Rendu HTML avec des templates Jinja
- Formulaires pour traiter les entrées utilisateur
- Fournit une interface en ligne de commande (CLI)
- Peut servir des assets statiques (CSS, JS, images, etc.)
- Étend les fonctionnalités de l’application via des middleware
- Intégration facile de paquets officiels et tiers
- Fournit un système de vérification préalable (preflight check system) avant le lancement de l’application
Fonctionnalités étendues via les paquets first-party
- plain.models : fournit un ORM permettant de stocker des données dans Postgres, MySQL et SQLite
- plain.cache : une solution de cache fonctionnant avec la base de données existante
- plain.email : fournit la configuration et l’envoi d’e-mails à l’échelle de l’application
- plain.sessions : permet la lecture et l’écriture de sessions basées sur la base de données
- plain.worker : une solution de tâches en arrière-plan compatible avec la base de données existante
- plain.api : permet de construire des API JSON avec une architecture de vues basée sur des classes
Authentification
- plain.auth : fournit la base pour ajouter des utilisateurs, authentifier les requêtes et restreindre les vues
- plain.oauth : une solution OAuth flexible prenant en charge les connexions sociales modernes et l’accès aux API
- plain.passwords : prend en charge la connexion classique par mot de passe
- plain.loginlink : fournit des liens de connexion à usage unique pour se connecter sans mot de passe
- plain.passkeys : prise en charge de la connexion sans mot de passe prévue
Administration
- plain.admin : fournit un tableau de bord d’administration entièrement personnalisable
- plain.flags : permet de contrôler le contenu par utilisateur avec des feature flags basés sur la base de données
- plain.support : fournit un support client sans service tiers
- plain.redirection : surveillance des 404 et gestion des redirections depuis la base de données
- plain.pageviews : permet de voir ce que les utilisateurs consultent et d’offrir un meilleur support
Développement
- plain.dev : permet de démarrer un environnement de développement local avec une seule commande
- plain.pytest : permet d’écrire et d’exécuter des tests avec la bibliothèque de test Python populaire
- plain.code : permet le formatage et le linting du code Python avec une configuration par défaut
- plain.tunnel : permet d’exposer une application locale sur Internet pour les intégrations de webhooks
Frontend
- plain.tailwind : fournit une intégration de premier plan avec le framework CSS populaire
- plain.htmx : permet de construire une expérience utilisateur moderne avec les outils existants
- plain.elements : propose un nouveau paradigme pour les composants réutilisables dans les templates de l’application
- plain.pages : fournit un routage basé sur les fichiers avec HTML et Markdown
- plain.esbuild : fournit un processus de build simplifié pour la compilation JavaScript
- plain.vendor : permet de télécharger et d’auto-héberger des assets JavaScript et CSS sans dépendre d’un CDN
1 commentaires
Avis sur Hacker News
Beaucoup ignorent peut-être que le bug tracker de Django Rest Framework est passé en privé et qu’un nouveau mainteneur est recherché
Sentiments mitigés à propos d’un fork de Django
Les points forts de Django sont son ORM et son écosystème / ses idiomes
Django a quelques points faibles
Surprise face au ressentiment négatif envers Django
Passage de Django à Supabase/Firebase
Agacement face à une configuration faite de chaînes de caractères qui référencent des classes
Lecture de la documentation de Plain
On ne sait pas si Plain réussira, mais on comprend pourquoi le fork existe