# Programme de Django Introduction TODO: Remplacer les images de code par des sections Markdown --- ## Découvrir Django - Design Pattern MVC : structure, utilisation - Présentation de Django : paradigme, versions, documentation - Autres frameworks web Python existants : Flask, Pylons, Pyramid etc. - Environnements de développement intégrés - Environnements de développement console - Installation de Django et paquets annexes (applications Django) --- ### Structure générale d'un projet Django - Structure générale d'un projet - Structure générale d'une application Atelier : Création d'un projet et d'une application Django --- ## Afficher des pages avec Django - Routage d'URL - Écriture de vues - Intrpduction aux Vues basées sur des classes - Introduction au middleware --- ## Templating (gabarits) avec Django - Principe du templating général - Principe du templating avec Django - Espaces réservés (interpolation) - Filtres de templates - Balises de templates (tags) et structures de contrôle - Héritage de templates - Balises spéciales : include, load, url et static - Balises et filtres personnalisés --- Ateliers : - Créer et afficher un template dans la console - Utiliser un contexte dans un template (+filtres) - Utiliser des structures de contrôle - Utiliser l'héritage et les blocs - Découvrir les balises spéciales - Écrire des filtres personnalisés --- ## Saisir des données avec les formulaires - Définition de formulaires manuels - Utilisation de formulaires - Utilisation des formulaires dans les templates - Valeurs par défaut des formulaires, traitement, sécurité etc. - Validation de la saisie utilisateur - Gestion des téléchargements et fichiers média --- ## Persistance des données avec des bases de données (ORM) - ORM : intérêt, avantages - ORM Django : configuration, fonctionnalités - Définition des modèles de données - Définition des relations entre tables (clés) - Configuration et classe Meta - Héritage, Proxy et modèles abstraits - Interroger la base de données - Enregistrer et modifier des données dans la base (+ concurrence) - Système de migrations de schéma Django --- ## Utiliser des formulaires avec la base de données - Définition de formulaires basés sur les modèles - Utilisation des formulaires et validation - Gestion des téléchargements --- ## Interface d'administration de Django - Présentation de l'interface d'administration intégrée - Configuration de l'administration --- ## L'authentification et les utilisateurs - L'application d'authentification de Django - S'authentifier programmatiquement dans une vue - S'authentifier avec un formulaire --- ## Traduction d'un projet Django (I18N) - Traduction dans le code Django - Traduction dans les templates Ateliers : - Ajout de traduction au code de projet - Ajout de traduction dans les templates Atelier : I18N de l'application --- ## Concepts avancés - Envoyer des emails - Créer des vues de téléchargment - Lancement de tests d'un projet Django (unittest) : - Test Runner - Test Client - Déploiement d'un projet Django - Interconnexion avec les réseaux sociaux (django-allauth) - API REST en Django - Interfaçage avec un framework front-end (ex. Vue.js ou Angular) - Interfaçage avec un frawework front-end basé sur le contenu HTML (ex. HTMX) - Intégration avec Git et une usine logicielle