Introduction à Django - Framework Web Python

1. A propos du cours

  1. Auteur : Présentateur anonyme (Expérience basée sur le développement de Trivialibre et MapOSMatic)
  2. Type : Support de conférence / Présentation
  3. Langue : Français
  4. Licence : Document public (hébergé par Toulibre)

2. Prérequis

  1. Connaissances de base en développement Web (concepts HTTP, HTML).
  2. Une familiarité avec un langage de programmation, de préférence le Python, est un atout majeur.
  3. Comprendre le concept de base de données relationnelle.
  4. Aucune expérience préalable avec un framework Web n'est nécessaire.

3. Publique cible

Cette présentation s'adresse aux développeurs Web ou aux programmeurs curieux, potentiellement familiers avec des approches simples comme le PHP "brut", qui souhaitent comprendre l'intérêt d'utiliser un framework structuré. Elle est idéale pour ceux qui envisagent de choisir Django pour un projet et veulent en voir les concepts fondamentaux et le flux de travail de base expliqués de manière claire et pratique, à travers un exemple concret.

4. Outils matériels et logiciels

4.1 Outils matériels

  1. Un ordinateur avec une distribution Linux, Windows ou macOS.
  2. Connexion internet pour l'installation des paquets (optionnel, selon l'OS).

4.2 Outils logiciels

  1. Python installé sur le système.
  2. Le paquet python-django (installable via apt-get sur Debian/Ubuntu ou pip ailleurs).
  3. Un éditeur de texte ou un IDE pour coder.
  4. Un navigateur Web pour tester l'application.
  5. Une base de données SQLite (incluse par défaut avec Python, utilisée dans l'exemple).

5. Champs d'applications

  1. Développement rapide de prototypes d'applications Web.
  2. Création de sites Web dynamiques avec base de données et interface d'administration automatique.
  3. Construction d'APIs Web backend (bien que cela ne soit pas le focus direct de cette présentation historique).
  4. Séparation claire des préoccupations (MVC/MTV) dans un projet Web.
  5. Automatisation des tâches courantes (gestion des URLs, formulaires, ORM).

6. Courte description

Cette conférence est une introduction pratique au framework Web Django pour Python. Elle démontre, via la création d'une application d'inscription à des événements, les concepts clés comme le modèle, les vues, les templates et le routeur d'URL. L'objectif est de montrer la valeur ajoutée d'un framework par rapport au développement "sur le métal".

7. Longue description du cours

Cette présentation, donnée dans le cadre d'une rencontre Toulibre en 2009, sert de guide d'initiation convaincant au framework Django. Elle commence par un constat : développer un site Web avec des scripts simples (comme en PHP) est possible mais manque d'infrastructure, rendant le code rapidement désorganisé. L'auteur argue qu'investir du temps dans l'apprentissage d'un framework Web comme Django est rentable, car il offre une structure propre, résout des problématiques courantes et accélère le développement à long terme, même pour un "développeur du dimanche".

Le cœur de la conférence est un tutoriel pas à pas pour construire une mini-application de gestion d'événements ("events"). Ce projet permet d'aborder la philosophie "batteries-included" de Django et ses composants principaux organisés selon le pattern Modèle-Template-Vue (MTV), une variante du MVC.

7.1 Le Modèle et l'ORM

La présentation explique en détail le concept de modèle comme représentation des données. Avec Django, on définit des classes Python qui héritent de django.db.models.Model. Ces classes sont automatiquement traduites en tables de base de données par l'ORM (Object-Relational Mapping). L'auteur montre comment définir des modèles Event et Participant, avec des champs typés (CharField, DateTimeField, ForeignKey). La grande force mise en avant est de pouvoir manipuler les données comme des objets Python (création, lecture, mise à jour, suppression - CRUD) sans écrire de SQL, via l'API Model.objects. Des exemples en shell Python illustrent cette puissance.

7.2 Les Vues et le Routeur d'URL

Les vues sont présentées comme les fonctions qui traitent une requête HTTP et retournent une réponse. L'auteur explique comment les associer à des URLs via le fichier routeur d'URL (urls.py), qui utilise des expressions régulières pour faire le lien entre un chemin d'URL et une fonction de vue. Une vue minimale retournant un simple HttpResponse est d'abord montrée.

7.3 Les Templates pour la Présentation

Pour séparer la logique métier de la présentation, Django utilise des templates. Le document explique comment configurer le répertoire des templates et comment les vues peuvent y injecter des variables de contexte (render_to_response). La syntaxe de base des templates est abordée : l'affichage de variables avec {{ variable }} et l'utilisation de balises comme {% for %} ou {% if %}.

7.4 Flux de Travail Complet

La présentation suit un flux logique : 1) création du projet avec django-admin startproject, 2) création d'une application avec manage.py startapp, 3) configuration de la base de données (SQLite) dans settings.py, 4) définition des modèles, 5) initialisation de la BDD avec manage.py syncdb, 6) écriture de vues et de templates, et 7) liaison via les URLs. Le serveur de développement intégré (manage.py runserver) est présenté comme un outil pratique pour tester l'application en local.

En conclusion, cette conférence historique reste un excellent point d'entrée pour comprendre la logique fondamentale de Django et la productivité qu'il peut apporter. Elle met l'accent sur la simplicité de démarrage ("ça marche par défaut") et la séparation des couches, des principes qui restent au cœur de Django aujourd'hui, même si certains détails techniques ont évolué (comme le système de migrations, remplaçant syncdb).

8. Aperçu du document

 

Leave a Reply

Your email address will not be published. Required fields are marked *