Icone de Django
Pourquoi l'association utilise beaucoup Django?
Quel est l'intérêt de Djano
Image de Django
Barbu
Denis
Publié le 18 novembre 2025

Qu’est-ce que Django ?

une infrastructure d'application de développement web écrite en Python

Regroupe toutes les fonctions nécessaires pour créer une application complète.

Application réutilisable, évolutive, extensive et sécurisée.

Fonctionnalités

  1. uinfrastructure d'application de développement web écrite en Python

Pour mémoire

Date de création 2000

Open source depuis 2005

Framework web le plus utilisé dans le monde

Instagram

Spotify

Washington Post

DropBox

Mozilla

YouTube

Pinterest

National Geographic

Qu’est-ce qu'une application web?


Word-Wide-Web (www) inventé par le CERN en 198

  1. Fichiers de texte pures formatables permettant la diffusion des informations
  2. Aujourd'hui version 5 de html, aboutie et majeure (multimedia, etc... )
  3. Qu'est ce que le html
    Le html est un langage constitué de balises ou tags.
    Un traitement de texte en fait dont le formatage ou la présentation est inséré dans des balises (<tag> </tag>)
    On y trouve aussi des feuilles de style, des scripts de progammation et des tags particuliers qui seront interprétés sur le serveur.
  4. Feuilles de style: css, flex, etc. Framework: bootstrap, w3.css, etc...
  5. Script javascript, js. Framework: jquery
  6. tag php: <?
  7. tags django: {{ variable }} {% url args %}

Principe et philosophie

Django s'inspire du modèle MVC (disons plutot MVT).
La structure du framework sépare les données ( models ) qui sont séparées des traitements ( controller ) qui sont eux-mêmes séparés de la vue ( view / template ).

Architecture MVT, (Model-View-Template)

Model: le modèle définit la structure et la gestion de la base de données

Django ORM (Object Relational Mapping)

Modèles de données définis par des classes Python

View: une vue reçoit les requêtes HTTP et renvoie les réponses HTTP.

accède aux données requises pour satisfaire les requêtes par une fonction ou classe python via les modèles

formate la réponse aux templates ou rendu html

Template

interface html ou rendu visuel

langage de balisage personnel

interfaces dynamiques et interactives

Principe DRY (Don’t Repeat Yourself)

  1. environnement de travail propre et gérable
  2. un espace unique pour stocker chaque objet distinct
  3. supprime les redondances pour se concentrer sur la logique de l'application

Authentification et sécurité

  1. un système d'authentification utilisateur complet et sécurisé
  2. comptes d'utilisateurs, groupes d'utilisateurs et sessions
  3. un système de sécurité de pointe contre les failles de sécurité courantes

DRF (Django REST Framework)

  1. une boîte à outils de composants pour créer des API RESTFUL
  2. Une API est une interface permettant d'interagir avec des bases de données.
  3. Les API RESTFUL sont utilisées pour répertorier, modifier, créer et supprimer des données sur des serveurs Web

Principes pour développer un projet Django

  1. Créer l'environnement python dans un répertoire:
    $> python -m venv .venv
  2. Démarrer l'environnement python et installer django:
    $> source .venv/bin/python (démarrer l'environnement python)
    (.venv) $> pip install django
  3. Le projet est créé avec la commande suivante:
    (.venv) $> django-admin startproject demo
  4. Faire une première migration pour créer la base de donées (sqlite3 par défaut):
    (.venv) $> cd demo (se placer dans le répertoire projet)
    (.venv) $> python manage.py migrate
  5. Créer le super utilisateur pour l'administration du back end:
    (.venv) $> python manage.py createsuperuser
  6. On peut maintenant lancer le serveur de développement:
    (.venv) $> python manage.py runserver
  7. Tester les adresse suivantes:
    http://127.0.0.1:8000/admin/ (Administration du back end)
    http://127.0.0.1:8000 (Le site front end)
  8. Tout est prêt pour commencer son projet

Prendre un IDE pour éditer le projet

Spyder + Anaconda (libre)

Eclipse + pydev (libre)

Pycharm (libre pour python mais payant pour django

Visualstudio (libre)

Modifier les variables du projet et adapter le settings.py

  1. Par défaut le mode DEBUG = True, on le laisse tel que en mode développement
  2. Ajouter boutique dans la liste des applications installées: INSTALLED_APPSINSTALLED_APPS = [ ... 'boutique', ]
  3. Configurer l'accès à la base de données par défaut c'est sqlite3: DATABASES
  4. Configuration du fuseau horaire: TIME_ZONE
  5. Changer la langue: LANGUAGE_CODE
  6. Paramétrer les fichiers statiques: STATIC_URL et STATICFILES_DIRS
  7. Indiquer les dossiers templates: TEMPLATES
  8. Indiquer les dossiers média: MEDIA_URL et MEDIA_ROOT
Modifier les variables du projet et adapter le settings.py
  1. Par défaut le mode DEBUG = True, on le laisse tel que en mode développement
  2. Ajouter boutique dans la liste des applications installées: INSTALLED_APPSINSTALLED_APPS = [ ... 'boutique', ]
  3. Configurer l'accès à la base de données par défaut c'est sqlite3: DATABASES
  4. Configuration du fuseau horaire: TIME_ZONE
  5. Changer la langue: LANGUAGE_CODE
  6. Paramétrer les fichiers statiques: STATIC_URL et STATICFILES_DIRS
  7. Indiquer les dossiers templates: TEMPLATES
  8. Indiquer les dossiers média: MEDIA_URL et MEDIA_ROOT

Créer une application et créer une première page

  1. (.venv) $> python manage.py startapp boutique (création de l'application boutique)
  2. Créer une route vers la page home dans demo/url.py:from boutique import views urlpatterns = [ ... path('', 'views.home', name='home'), [
  3. Créer une fonction home dans boutique/views:def home(request): return render(request, 'boutique/home.html')
  4. Créer la template dans boutique/templates/boutique/home.html:
    (.venv) $> mkdir -p boutique/templates/boutique
    (.venv) $> echo "Bonjour tout le monde" > boutique/templates/boutique/home.html
  5. Le rendu de la page home est alors visible en 127.0.0.1:8000

Données

La base de données est générée à partir du module models.py

Exemple création de la table articles dans boutique/models.py:class Article(models.Model): name = models.CharField("Name", max_length=200, null=True, blank=False) #description = models.TextField("Description", null=True, blank=True)

Procéder à la migation à chaque modification ou mise à jour des models.

(.venv) $> python manage.py makemigrations

(.venv) $> python manage.py migrate

Administration de la base de données

Il suffit d'enregistrer le modèle dans le module boutique/admin.py

from boutique import models

admin.site.register(models.Article)

Le rendu de la page admin est alors visible en 127.0.0.1:8000/admin

Formulaires de saisie

Les formulaires de saisie s'insèrent dans le module boutique/forms.py

from django import forms
from boutique import models

class ArticleForm(forms.ModelForm):

class Meta:
model = models.Article
fields = ['name', 'description', ]

Traitement d'un formulaire

Le traitement du formulaire se place dans le module boutique/views.py
On créera sa route dans boutique/urls.py

La route:

urlpatterns = [ ... path('article/', 'views.article', name='article'), ]

La vue:

...

from boutique.forms import ArticleForm

def article(request):

formulaire = ArticleForm()

return render(request, 'boutique/article.html', context={'formulaire': ArticleForm()})

La template dans boutique/article.html

{{ formulaire.as_p }}

Le rendu de la page article est alors visible en 127.0.0.1:8000/article/

© 2025-12-13T16:30:50.487249+01:00