0% ont trouvé ce document utile (0 vote)
12 vues36 pages

Formation Django : Guide Complet

Ce document présente un plan de formation en Django, couvrant des modules tels que l'introduction à Django, la gestion des modèles et des bases de données, l'administration, la gestion des vues et des URLs, ainsi que le déploiement d'applications. Chaque module aborde des concepts clés, des pratiques d'installation, et des activités pratiques pour renforcer l'apprentissage. L'objectif est de fournir une compréhension approfondie de Django et de ses fonctionnalités pour le développement web.

Transféré par

toutouely2024
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues36 pages

Formation Django : Guide Complet

Ce document présente un plan de formation en Django, couvrant des modules tels que l'introduction à Django, la gestion des modèles et des bases de données, l'administration, la gestion des vues et des URLs, ainsi que le déploiement d'applications. Chaque module aborde des concepts clés, des pratiques d'installation, et des activités pratiques pour renforcer l'apprentissage. L'objectif est de fournir une compréhension approfondie de Django et de ses fonctionnalités pour le développement web.

Transféré par

toutouely2024
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Formation en Django

Dr Ahmed SEJAD
[Link]@[Link]

1
PLAN

Module 1 : Introduction à Django


Module 2 : Modèles et base de données
Module 3 : Administration Django
Module 4 : Gestion des vues et des URLs
Module 5 : Les Templates dans Django
Module 6 : Gestion des formulaires et validations
Module 7 : Authentification et Autorisation
Module 8 : API REST avec Django REST Framework
Module 9 : Déploiement
2
Module 1 : Introduction à Django

3
Qu'est-ce que Django et ses avantages ?
Qu'est-ce que Django ?
Django est un Framework web de haut niveau écrit en Python, conçu pour
encourager un développement rapide et une conception propre et pragmatique.

Avantages de Django :
• ORM Puissant : Gestion automatique des bases de données, permettant de
travailler avec des objets Python au lieu de requêtes SQL.
• Sécurité : Django fournit des protections intégrées contre les attaques
courantes comme l'injection SQL, les attaques CSRF (Cross-Site Request
Forgery) et XSS (Cross-Site Scripting).

• Administration : Interface d'administration automatiquement générée et


personnalisable.
4
Qu'est-ce que Django et ses avantages ?
• Communauté et Documentation : Large communauté de développeurs et
documentation complète et bien organisée.

• Scalabilité : Utilisé par des sites à fort trafic comme Instagram et Pinterest.
• Packages Réutilisables : Grande bibliothèque de packages tiers pour étendre
les fonctionnalités.

Exemples des plateformes développées avec Django :

5
Architecture de Django (MVT : Modèle-Vue-Template)

Templates

HttpRequest
Requête URLs Views
HttpResponse

Couche de présentation
Models
Couche de logique métier
Couche d’accès aux données

6
Architecture de Django (MVT : Modèle-Vue-Template)
Modèle (Model) :
• Correspond aux données.
• Définition des structures de données et interaction avec la base de données via
l'ORM de Django.

Vue (View) :
• Gère la logique de présentation et renvoie les réponses HTTP.
• Les vues peuvent être basées sur des fonctions (Function-Based Views, FBV)
ou sur des classes (Class-Based Views, CBV).

Template :
• Système de templates de Django utilisé pour générer du HTML dynamique.
• Les templates contiennent des balises et des filtres pour afficher les données de
7
manière propre et organisée.
Installation et configuration
Installation de Python :
• Téléchargez et installez la dernière version de Python depuis [Link].
• Assurez-vous que Python est ajouté à votre PATH.
• Vérifiez l'installation avec :

Configuration d'un environnement virtuel

Installation de Django :
• Utilisez pip, le gestionnaire de paquets Python, pour installer Django.

8
Structure de projet
Création d'un nouveau projet Django

Détails des fichiers et dossiers :


1. mon_prmier_projet/ (Dossier racine)
• Fonction : Dossier principal du projet Django. Tous les fichiers et dossiers du projet se
trouvent ici.

2. [Link]
• Fonction : Un script utilitaire pour interagir avec le projet Django depuis la ligne de
commande.
• Usage : Exécuter des commandes Django, comme démarrer le serveur, effectuer des
migrations, et gérer la base de données.

Exemple : Démarrage du serveur

[Link] 9
Structure de projet
3. mon_prmier_projet /(dossier fils)
• init .py : pour reconnaître le répertoire comme un package Python
• [Link] : fichier de configuration principal du projet Django. Il contient divers éléments
essentiels pour le fonctionnement de l'application, comme :

▪ INSTALLED_APPS : liste des applications installées et activées dans le projet.

▪ MIDDLEWARE : liste des middlewares qui interceptent et traitent les requêtes et


réponses HTTP.

▪ DATABASES : configuration de la base de données (par défaut SQLite).

▪ ALLOWED_HOSTS : configurer les hôtes autorisés en production.

▪ TEMPLATES : paramètres pour les templates HTML.

▪ STATIC_URL et STATICFILES_DIRS : configuration des fichiers statiques (CSS,


JavaScript, images).

• [Link] : fichier de gestion des routes


• [Link] et [Link] : pour les serveurs web, principalement en production. 10
Structure de projet

Projet Django

Application 1 Application 2 Application 3


Models Models Models
Views Views Views
URLs URLs URLs
Templates Templates Templates

Django adopte une approche modulaire : un projet principal peut contenir plusieurs applications
indépendantes, chacune gérant une fonctionnalité spécifique. Par exemple, un projet de gestion
scolaire pourrait inclure des applications pour les étudiants, les cours et les inscriptions, ce qui
facilite la maintenance et la réutilisation des modules.
11
Structure de projet
Après avoir ajouté une application nommée myapp dans ce projet en utilisant la commande
suivante :

la structure pourrait ressembler à ceci

Enregistrer myapp dans [Link] 12


Activités 1

🎯 Objectif : Installer Django, créer un projet et une application, et comprendre la


structure d’un projet Django.

1. Installer Django et créer un projet Django


• Installer Django et utiliser la commande django-admin pour générer
un projet (plateforme_annonces).

2. Créer une application Django (annonces)


• Ajouter annonces à INSTALLED_APPS.

3. Lancer le serveur Django et afficher la page par défaut


• Vérifier que l’installation fonctionne en exécutant le serveur et en
accédant à [Link]

13
Module 2 : Modèles et base de données

BD

14
Objectif du module :
À l’issi de ce module, vous serez capable de :

• Comprendre les modèles dans Django et leur rôle


• Configurer une base de données (SQLite ou MySQL)
• Utiliser l'ORM (Object-Relational Mapping) de Django pour manipuler des
données
• Créer des relations entre différents modèles
• Pratiquer la création de modèles en développant un modèle de blog avec
des articles et des catégories

15
Comprendre les modèles dans Django
Qu'est-ce qu'un modèle ?
• Les modèles dans Django représentent les tables de la base de données et
définissent la structure des données.
• Chaque modèle est une classe Python qui hérite de [Link].
• Django convertit automatiquement chaque modèle en une table dans la base
de données.
• Principaux attributs d'un modèle : CharField, TextField, IntegerField,
DateTimeField, BooleanField, etc., qui définissent le type de données
stockées.
Exemple de modèle :

NB : Si aucune clé primaire n'est spécifiée, Django génère automatiquement un


15
champ id comme clé primaire avec un incrément automatique.
Configuration d'une base de données (SQLite, MySQL)
Choix de la base de données
• Par défaut, Django utilise SQLite, qui est une base de données légère idéale
pour le développement et les tests.
• Pour les environnements de production, il est recommandé d'utiliser une
base de données plus robuste, comme PostgreSQL ou MySQL.

Configurer SQLite (par défaut)

La configuration par défaut de SQLite est dans le fichier [Link] :

17
Configuration d'une base de données (SQLite, MySQL)
Configurer MySQL:
Ajouter les informations de connexion MySQL dans [Link] :

Installez mysqlclient pour permettre à Django de se connecter à MySQL. Vous pouvez le


faire en exécutant la commande suivante : pip install mysqlclient.

Après avoir créer votre BD et pour que Django applique ces modèles dans la base de
NB : données, vous devez créer et appliquer les migrations :
• python [Link] makemigrations
18
• python [Link] migrate
ORM de Django : Création, lecture, mise à jour, suppression (CRUD)
• L'ORM (Object-Relational Mapping) de Django permet de manipuler la base de données via du
code Python sans écrire de requêtes SQL.
• Les actions CRUD (Create, Read, Update, Delete) sont des opérations de base pour interagir
avec les données. Tapez dans le terminal python [Link] shell puis exécuter les requêtes
suivantes :

19
Relations entre les modèles (One-to-One, One-to-Many, Many-to-Many)
Types de relations entre modèles :
• One-to-One (un à un) : une relation dans laquelle chaque enregistrement d'un modèle est lié à
un seul enregistrement d'un autre modèle.
• One-to-Many (un à plusieurs) : une relation dans laquelle un enregistrement d'un modèle est lié
à plusieurs enregistrements d'un autre modèle. Exemple : un article peut appartenir à une seule
catégorie, mais une catégorie peut avoir plusieurs articles.
• Many-to-Many (plusieurs à plusieurs) : une relation dans laquelle plusieurs enregistrements
d'un modèle peuvent être liés à plusieurs enregistrements d'un autre modèle. Exemple : un article
peut avoir plusieurs tags, et chaque tag peut être associé à plusieurs articles.
Exemple : One-to-One (Article et ArticleDetail ) :

20
Relations entre les modèles (One-to-One, One-to-Many, Many-to-Many)
Exemple : One-to-Many (Article et Catégorie) :

Exemple : Many-to-Many (Article et Tag) :

21
Activités 2

🎯 Objectif : Définir les modèles Catégorie et Annonce, et préparer la base de


données avec des migrations.

1. Créer le modèle Catégorie


• Un modèle permettant de stocker des catégories (ex : Électronique,
Immobilier...).

2. Créer le modèle Annonce


• Un modèle qui contient des informations sur les annonces : titre,
description, prix, image, catégorie, statut (En attente, Validée et
Rejetée).
• Ajouter une relation avec Catégorie pour organiser les annonces.

3. Effectuer les migrations de la base de données


• Makemigrations
22
• migrate
Module 3 : Administration Django

23
Objectif du module :

À l’issi de ce module, vous serez capable de :


• Comprendre le rôle de l'administration Django dans la gestion des
modèles.

• Apprendre à personnaliser l'interface d'administration pour une meilleure


expérience utilisateur.
• Configurer des utilisateurs avec des rôles spécifiques et gérer leurs
permissions.

24
Introduction à l’administration Django
1. Qu’est-ce que l’administration Django ?
• Interface web générée automatiquement par Django pour gérer les modèles et les
données.
• Fournit une solution rapide pour administrer l'application sans créer de panneaux
d'administration personnalisés.
2. Activer l’administration Django :
• Django inclut l’administration par défaut via l’application [Link].
• Assurez-vous que l’application admin est ajoutée dans INSTALLED_APPS du fichier
[Link].
3. Créer un utilisateur superutilisateur :
• Commande pour créer un superutilisateur :
• Fournir un nom d’utilisateur, une adresse e-mail, et un mot de passe.
4. Accéder à l’administration :
• Démarrez le serveur de développement et rendez-vous sur [Link]
et connectez-vous avec les informations du superutilisateur.
25
Personnalisation de l’interface d’administration
1. Enregistrement d’un modèle dans l’administration :
• Ajoutez le modèle dans le fichier [Link] de l’application :

2. Personnalisation avec une classe ModelAdmin :


• Ajouter des options pour personnaliser l’affichage des modèles :

26
Gestion des utilisateurs et permissions dans l’admin
1. Création de nouveaux utilisateurs dans l’administration :
• Naviguer vers la section Utilisateurs dans l’administration et créer un nouvel utilisateur.
• Définir les attributs spécifiques :
o Statut "Équipe" : Spécifie si l’utilisateur peut se connecter à l’interface
d’administration.
o Statut "Super-utilisateur" : Permet de donner à l’utilisateur toutes les
permissions sans les assigner individuellement.

1. Gestion des permissions :


• Les permissions permettent de restreindre ou de donner accès à certaines actions
(ajout, modification, suppression, visualisation).
• Attribuer des permissions spécifiques à un utilisateur ou un groupe.

2. Groupes d’utilisateurs :
• Les groupes facilitent la gestion des utilisateurs ayant les mêmes permissions.
• Exemple de configuration d’un groupe "Rédacteurs" avec des permissions limitées à la
gestion des articles.
27
Activités 3
et les catégories à travers l’interface
🎯 Objectif : Gérer les annonces
d’administration Django.

1. Enregistrer les modèles Annonce et Catégorie dans l’admin Django


• Ajouter les modèles dans [Link] pour pouvoir les gérer facilement
via l’interface d’administration.

2. Personnaliser l’affichage des annonces dans l’admin


• Ajouter des colonnes spécifiques (titre, prix, statut, etc.) et des actions
(valider, rejeter).

3. Créer un super utilisateur et tester l’admin Django


• Créer un compte administrateur et se connecter à
[Link]

4. Ajouter quelques catégories et annonces via l’interface


d’administration. 28
Module 4 : Gestion des vues et des URLs

HttpRequest
Requête URLs Views
HttpResponse

29
Objectif du module :

À l’issi de ce module, vous serez capable de :

• Comprendre et créer différents types de vues dans Django

• Gérer le routage et la configuration des URLs

• Passer des paramètres dans les URLs pour rendre les vues dynamiques

• Créer des vues pour afficher les articles d’un blog

30
Types de vues
Django propose deux types de vues : les vues basées sur les fonctions (FBV) et les vues basées
sur les classes (CBV). Les deux méthodes peuvent être utilisées pour créer des fonctionnalités, et
chacune a ses avantages.

• Vues basées sur les fonctions (Function-Based Views - FBV)


Description : Les vues basées sur les fonctions sont définies comme des fonctions
Python simples. Elles prennent une requête (request) HTTP en argument et renvoient
une réponse HTTP.

Exemple : une vue basée sur une fonction pour afficher la liste des articles

31
Avantages : Les FBV sont simples et directes, idéales pour des vues simples.
Types de vues
• Vues basées sur les classes (Class-Based Views - CBV)
Description : Les vues basées sur les classes permettent de structurer les vues comme
des classes Python.

Exemple : une vue basée sur une classe pour afficher la liste des articles

Avantages : Les CBV permettent une réutilisation et une extensibilité plus


faciles. Elles sont idéales pour les applications plus complexes. 32
Types de vues
Django fournit des classes génériques qui facilitent la création de vues courantes.
Vues Génériques de Base
• View : La classe de base pour toutes les vues. Elle peut être utilisée pour créer des
vues en surchargeant les méthodes get, post, etc.
Vues Génériques Basées sur les Données (CRUD)
Ces vues facilitent les opérations de création, lecture, mise à jour et suppression (CRUD).
• ListView : Affiche une liste d'objets d'un modèle particulier.
• DetailView : Affiche les détails d'un objet spécifique.
• CreateView : Affiche un formulaire pour créer un nouvel objet et gère sa sauvegarde si
le formulaire est valide.
• UpdateView : Affiche un formulaire pour modifier un objet existant et gère la mise à jour
si le formulaire est valide.
• DeleteView : Affiche une page de confirmation pour supprimer un objet et gère la
suppression après confirmation.
Vues Génériques Basées sur les Formulaires
• FormView : Affiche un formulaire et gère le traitement des données du formulaire.
33
NB : la liste n’est pas exhaustive
Routage et gestion des URLs
Dans Django, les URLs sont définies dans le fichier [Link] (qui doit être créé) au sein de
l'application. Voici comment associer les vues précédemment définies aux URLs.

1. Définir les URLs dans le fichier [Link] de l’application :

2. Inclusion dans le fichier [Link] principal du projet pour que les URLs de l’application
soient accessibles :

34
Routage et gestion des URLs
Les URLs peuvent inclure des paramètres dynamiques pour afficher des contenus spécifiques,
comme un article particulier.
Exemple de vue dynamique avec un paramètre d’URL :
• Pour afficher le détail d'un article en fonction de son identifiant (article_id), nous allons
ajouter un paramètre dynamique dans l'URL.

La vue fonction pour traiter le paramètre :

35
Activités 4

🎯 Objectif : Afficher la liste des annonces


fonctionnement des vues et des URLs.
validées et comprendre le

1. Créer une vue qui affiche la liste des annonces validées


• Récupérer uniquement les annonces ayant le statut "Validée".

2. Définir une URL pour accéder à cette page


• Ajouter un fichier [Link] dans l’application et configurer une route vers
la vue créée.

36

Vous aimerez peut-être aussi