Développement Web avec Python
Objectifs :
- Maîtriser les fondamentaux de Python et la programmation orientée objet
- Concevoir et manipuler une base de données relationnelle avec l'ORM Django
- Configurer le routage d'URL et créer des vues fonctionnelles et basées sur les classes
- Créer des templates dynamiques et gérer les formulaires
- Développer une application web complète de bout en bout
Objectifs :
- Maîtriser les fondamentaux de Python et la programmation orientée objet
- Concevoir et manipuler une base de données relationnelle avec l'ORM Django
- Configurer le routage d'URL et créer des vues fonctionnelles et basées sur les classes
- Créer des templates dynamiques et gérer les formulaires
- Développer une application web complète de bout en bout
Public visé
- Développeurs souhaitant maîtriser le développement web avec Python et Django
- Intégrateurs web désirant élargir leurs compétences back-end
- Administrateurs système souhaitant automatiser des interfaces web
- Professionnels en reconversion vers le développement web
Objectifs pédagogiques
- Maîtriser les fondamentaux de Python et la programmation orientée objet (classes, héritage, encapsulation)
- Concevoir et manipuler une base de données relationnelle avec SQL et l'ORM Django
- Installer, configurer et structurer un projet Django selon l'architecture MTV
- Définir des modèles de données et gérer les migrations
- Configurer le routage d'URL et créer des vues fonctionnelles et basées sur les classes
- Créer des templates dynamiques avec le moteur de templates Django
- Gérer les formulaires et la validation des données
- Développer une application web complète de bout en bout
Prérequis
- Notions de base en programmation : variables, conditions, boucles, fonctions
- Aisance minimale avec l'outil informatique (naviguer dans des dossiers, utiliser un navigateur, un terminal)
- Une première expérience avec Python est un plus mais n'est pas obligatoire
- Disposer d'un ordinateur avec Python 3.x et accès internet
Méthodes pédagogiques
- Alternance de théorie (40%) et de pratique (60%)
- Exposés interactifs, démonstrations live de code et d'architecture Django
- TP individuels et collaboratifs avec Django, SQLite, templates et formulaires
- Pédagogie active : résolution de problèmes, débogage collaboratif, revue de code en groupe
- Supports de cours numériques et fichiers d'exercices (accès pérenne)
Programme détaillé
JOUR 1 — Bases de Python et Programmation Orientée Objet
- Rappels et consolidation : variables, types de données, conversions
- Structures de contrôle : if/elif/else, boucles for et while, break/continue
- Structures de données : listes, tuples, dictionnaires, ensembles
- Fonctions : définition, paramètres, valeurs de retour, *args, **kwargs
- Manipulation de chaînes de caractères et f-strings
- Gestion des fichiers : lecture/écriture avec open() et le gestionnaire de contexte with
- POO : classes, objets, attributs, méthodes, constructeur __init__()
- Encapsulation : attributs privés, propriétés, décorateur @property
- Héritage : sous-classes, super(), redéfinition de méthodes
- Polymorphisme et méthodes spéciales : __str__(), __repr__(), __len__()
- Gestion des exceptions : try/except, raise, exceptions personnalisées
■ Travaux pratiques :
→ TP1 : Création d'un module utilitaire Python (fonctions, manipulation de fichiers)
→ TP2 : Modélisation d'un système de gestion de produits en POO (classes Produit, Catégorie, Inventaire)
→ TP3 : Mini-projet avec héritage et exceptions personnalisées
JOUR 2 — Bases de données et Framework Django
- Introduction aux bases de données relationnelles : concepts, tables, relations
- Le langage SQL : SELECT, INSERT, UPDATE, DELETE
- Jointures et filtres : WHERE, JOIN, GROUP BY, ORDER BY
- SQLite : présentation et utilisation avec Python (module sqlite3)
- Bonnes pratiques : requêtes paramétrées, gestion des connexions
- Présentation de Django : philosophie, architecture MTV (Model-Template-View)
- Installation de Django et création d'un projet : django-admin, startproject
- Structure d'un projet Django : settings.py, urls.py, wsgi.py
- Introduction à l'ORM Django : définition des modèles (models.py)
- Types de champs : CharField, IntegerField, DateField, ForeignKey, ManyToManyField
- Migrations : makemigrations, migrate — synchronisation schéma/code
- Interface d'administration Django : création de superuser, personnalisation
■ Travaux pratiques :
→ TP1 : Création et interrogation d'une base SQLite avec Python (carnet de contacts)
→ TP2 : Mise en place d'un projet Django avec modèles de données (blog : Article, Auteur, Catégorie)
→ TP3 : Configuration de l'interface d'administration et peuplement de la base
JOUR 3 — Routes, vues, templates et application web finale
- Système de routage : urls.py, path(), name, espaces de noms (namespaces)
- Vues fonctionnelles : HttpRequest, HttpResponse, render(), redirect()
- Vues basées sur les classes (CBV) : ListView, DetailView, CreateView
- Moteur de templates Django : syntaxe, variables, filtres, balises
- Héritage de templates : base.html, {% block %}, {% extends %}
- Fichiers statiques : CSS, JavaScript, images — configuration et utilisation
- Formulaires Django : Form, ModelForm, validation, affichage
- Gestion des requêtes POST : traitement, sauvegarde, messages de confirmation
- Sécurité de base : CSRF, protection des formulaires
■ Travaux pratiques :
→ TP1 : Création de vues et templates pour un site vitrine (accueil, à propos, contact)
→ TP2 : Formulaire de contact fonctionnel avec validation et sauvegarde en base
→ TP3 (Projet final) : Application web de gestion de tâches — modèles, vues, templates, formulaires, CRUD complet
Évaluation
- Test de positionnement en début de formation
- Évaluations formatives : exercices pratiques corrigés, revue de code, débogage en groupe, QCM intermédiaires
- QCM mi-parcours de 20 questions (Jour 2)
- QCM final de 30 questions (Jour 3) — critère de réussite : 60%
- Soutenance du mini-projet final
- Attestation de fin de formation délivrée
Public visé
- Développeurs souhaitant maîtriser le développement web avec Python et Django
- Intégrateurs web désirant élargir leurs compétences back-end
- Administrateurs système souhaitant automatiser des interfaces web
- Professionnels en reconversion vers le développement web
Objectifs pédagogiques
- Maîtriser les fondamentaux de Python et la programmation orientée objet (classes, héritage, encapsulation)
- Concevoir et manipuler une base de données relationnelle avec SQL et l'ORM Django
- Installer, configurer et structurer un projet Django selon l'architecture MTV
- Définir des modèles de données et gérer les migrations
- Configurer le routage d'URL et créer des vues fonctionnelles et basées sur les classes
- Créer des templates dynamiques avec le moteur de templates Django
- Gérer les formulaires et la validation des données
- Développer une application web complète de bout en bout
Prérequis
- Notions de base en programmation : variables, conditions, boucles, fonctions
- Aisance minimale avec l'outil informatique (naviguer dans des dossiers, utiliser un navigateur, un terminal)
- Une première expérience avec Python est un plus mais n'est pas obligatoire
- Disposer d'un ordinateur avec Python 3.x et accès internet
Méthodes pédagogiques
- Alternance de théorie (40%) et de pratique (60%)
- Exposés interactifs, démonstrations live de code et d'architecture Django
- TP individuels et collaboratifs avec Django, SQLite, templates et formulaires
- Pédagogie active : résolution de problèmes, débogage collaboratif, revue de code en groupe
- Supports de cours numériques et fichiers d'exercices (accès pérenne)
Programme détaillé
JOUR 1 — Bases de Python et Programmation Orientée Objet
- Rappels et consolidation : variables, types de données, conversions
- Structures de contrôle : if/elif/else, boucles for et while, break/continue
- Structures de données : listes, tuples, dictionnaires, ensembles
- Fonctions : définition, paramètres, valeurs de retour, *args, **kwargs
- Manipulation de chaînes de caractères et f-strings
- Gestion des fichiers : lecture/écriture avec open() et le gestionnaire de contexte with
- POO : classes, objets, attributs, méthodes, constructeur __init__()
- Encapsulation : attributs privés, propriétés, décorateur @property
- Héritage : sous-classes, super(), redéfinition de méthodes
- Polymorphisme et méthodes spéciales : __str__(), __repr__(), __len__()
- Gestion des exceptions : try/except, raise, exceptions personnalisées
■ Travaux pratiques :
→ TP1 : Création d'un module utilitaire Python (fonctions, manipulation de fichiers)
→ TP2 : Modélisation d'un système de gestion de produits en POO (classes Produit, Catégorie, Inventaire)
→ TP3 : Mini-projet avec héritage et exceptions personnalisées
JOUR 2 — Bases de données et Framework Django
- Introduction aux bases de données relationnelles : concepts, tables, relations
- Le langage SQL : SELECT, INSERT, UPDATE, DELETE
- Jointures et filtres : WHERE, JOIN, GROUP BY, ORDER BY
- SQLite : présentation et utilisation avec Python (module sqlite3)
- Bonnes pratiques : requêtes paramétrées, gestion des connexions
- Présentation de Django : philosophie, architecture MTV (Model-Template-View)
- Installation de Django et création d'un projet : django-admin, startproject
- Structure d'un projet Django : settings.py, urls.py, wsgi.py
- Introduction à l'ORM Django : définition des modèles (models.py)
- Types de champs : CharField, IntegerField, DateField, ForeignKey, ManyToManyField
- Migrations : makemigrations, migrate — synchronisation schéma/code
- Interface d'administration Django : création de superuser, personnalisation
■ Travaux pratiques :
→ TP1 : Création et interrogation d'une base SQLite avec Python (carnet de contacts)
→ TP2 : Mise en place d'un projet Django avec modèles de données (blog : Article, Auteur, Catégorie)
→ TP3 : Configuration de l'interface d'administration et peuplement de la base
JOUR 3 — Routes, vues, templates et application web finale
- Système de routage : urls.py, path(), name, espaces de noms (namespaces)
- Vues fonctionnelles : HttpRequest, HttpResponse, render(), redirect()
- Vues basées sur les classes (CBV) : ListView, DetailView, CreateView
- Moteur de templates Django : syntaxe, variables, filtres, balises
- Héritage de templates : base.html, {% block %}, {% extends %}
- Fichiers statiques : CSS, JavaScript, images — configuration et utilisation
- Formulaires Django : Form, ModelForm, validation, affichage
- Gestion des requêtes POST : traitement, sauvegarde, messages de confirmation
- Sécurité de base : CSRF, protection des formulaires
■ Travaux pratiques :
→ TP1 : Création de vues et templates pour un site vitrine (accueil, à propos, contact)
→ TP2 : Formulaire de contact fonctionnel avec validation et sauvegarde en base
→ TP3 (Projet final) : Application web de gestion de tâches — modèles, vues, templates, formulaires, CRUD complet
Évaluation
- Test de positionnement en début de formation
- Évaluations formatives : exercices pratiques corrigés, revue de code, débogage en groupe, QCM intermédiaires
- QCM mi-parcours de 20 questions (Jour 2)
- QCM final de 30 questions (Jour 3) — critère de réussite : 60%
- Soutenance du mini-projet final
- Attestation de fin de formation délivrée