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
Tarif inter / participant
1 500 € HT
📄 Programme (PDF) 📅 Voir les dates

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

Retour en haut