0% ont trouvé ce document utile (0 vote)
4 vues34 pages

Introduction à la Programmation Orientée Objet

Le document présente les concepts de la programmation orientée objet et les différences avec la programmation procédurale. Il aborde également les langages de programmation, les frameworks, et en particulier le framework Django pour le développement web, en détaillant sa structure et ses fonctionnalités. Enfin, il décrit la création de modèles, la migration vers des tables, et l'utilisation de l'interface d'administration de Django.

Transféré par

plandymof
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues34 pages

Introduction à la Programmation Orientée Objet

Le document présente les concepts de la programmation orientée objet et les différences avec la programmation procédurale. Il aborde également les langages de programmation, les frameworks, et en particulier le framework Django pour le développement web, en détaillant sa structure et ses fonctionnalités. Enfin, il décrit la création de modèles, la migration vers des tables, et l'utilisation de l'interface d'administration de Django.

Transféré par

plandymof
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

Programmation Oriétée Objet

Prof. Osée Muhindo Masivi


2

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Introduction
Kinshasa

1. Paradigme de Programmation

Deux différents Paradigmes (façons) de programmation:


• Programmation procédural:

▫ Le logiciel est organisé autour de la notion de


procédures
▫ Fonctionne bien lorsque les données sont simples

• Paradigme orienté objet:

▫ Grouper ensemble les données décrivant une même


entité
▫ Aide à réduire la complexité du système
2. Langage de Programmation
• C’est une langue permettant de
communiquer (instruire ou donner les ordre)
avec un ordinateur
• Il a :
▫ Un vocabulaire : ensemble des MOTS-CLES
▫ Une grammaire : SYNTAXE

▫ if condition :
 Instructions si Vraie
Else :
instructions si Fause
4

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

3. Framework
Kinshasa

• Le mot anglais « Framework » signifie


cadre de travail : C’est une méthodologie
avec une boîte à outils de travail .
• Son premier objectif est de simplifier et
encadrer le travail des développeurs :
▫Donner une architecture et des outils
prêts à l’emploi pour le développement
d’applications.
▫Regroupent les fonctionnalités qui
facilitent et automatisent le développement
d’une application.
5

Types de Framework
© 2024 Prof. Osée Muhindo Masivi
Haute Ecole de Commerce de
Kinshasa

• Il existe plusieurs types de Framework pour


développer des applications généralement
spécifiques à un langage de programmation.
• Les Frameworks les plus plupulaires (2024) sont :
▫ React : Développement front-end Web JavaScript
▫ Angular: Développement back-end et front-end Web
TypeScript
▫ Laravel : Développement back-end et front-end Web
PHP. Il propose une courbe d’apprentissage t une
intégration des bases de données ORM (Object-
Relational Mapping) faciles
▫ Django : Développement back-end et front-end Web
Python.
4. Programmeur Back-End et Front-
End
1. Programmeur Back-End
• 👉 Il gère ce qui se passe en arrière-plan.
• Rôles principaux
• Développer la logique métier
• Créer et sécuriser les API
• Gérer les bases de données
• Authentification et autorisation

2. Programmeur Front-End
• 👉 Il s’occupe de ce que l’utilisateur voit et utilise.
• Rôles principaux
• Concevoir l’interface utilisateur (UI)
• Gérer l’expérience utilisateur (UX)
• Assurer la compatibilité mobile et navigateur
• Consommer des API (données venant du back-end)
3. Full-Stack
7

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de
Kinshasa

Plan du cours
• Pour atteindre cet objectif, le cours couvrira trois
thèmes :
▫ Chapitre 1: Paradigme de Programmation
▫ Chapitre 2: Les modèles
▫ Chapitre 3: Les vues
▫ Chapitre 4 : Les Templates
8

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Le Framework Django
Kinshasa

• Django est un Framework PYTHON moderne, Open-source


et gratuitpour le développement web.
• Il utilise l’Approche MVT pour organiser le code de
l'application.
• Il est imple et facilite l'apprentissage grâce aux
caractéristiques suivantes :
▫ PYTHON: Django exploite les fonctionnalités les plus récentes
de Python.
▫ Création rapide: La mise en place d'un projet Django est rapide
et simple.
▫ Développement orienté objet: Encourage les bonnes pratiques
9

Fonctionnement de Django
© 2024 Prof. Osée Muhindo Masivi
Haute Ecole de Commerce de
Kinshasa
10

© 2024 Prof. Osée Muhindo Masivi

Outils à installer pour utiliser Django


Haute Ecole de Commerce de
Kinshasa

1. Python : langage de programmaton (pour


l’installer visitez le site [Link]
2. Pip : gestionnaires des Package Python (pip
install pip). Il est installé par défaut avec
Python.
3. Django: frameword de programmation
pip install django.
Vous devez etre connectés à l’Internet
4. Editeur de code comme VSCode, Notepad++
5. Un SGBD comme MYSQL mais SQLite intégré
est suffisant pour les applications en local.
11

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Création d’un projet avec Django


Kinshasa

1. Identifier ou Crée un dossier pour les projets


Django sur son PC
2. Ouvrez la ligne de commande, accédez à
votre emplacement et :
3. Créer un projet django
django-admin startproject nom_projet
4. Créer un environnement de travail dans le
projet
py -m venv nom
nom\Scripts\[Link] (Activation)
5. Installer Django dans le projet
12

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Structure d’un projet Django


Kinshasa

Chemin Description
my_project/
Dossier principal du projet.
Contient les fichiers de
gestion du projet global.
my_project/[Link]
Fichier de gestion de Django,
utilisé pour exécuter des
commandes
comme runserver, migrate, etc.
my_project/my_project/
Dossier contenant les
configurations et paramètres
du projet.
my_project/my_project/__init__.py
Indique que ce dossier est un
package Python.
13

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Structure d’un projet Django


Kinshasa

Chemin Description
my_project/my_project/
Contient les paramètres et
[Link]
configurations du projet (base
de données, middleware, etc.).
my_project/my_project/[Link]
Contient la configuration des
routes/URLs principales du
projet.
my_project/my_project/[Link]
Point d'entrée pour le serveur
ASGI (si utilisé pour les
connexions asynchrones).
my_project/my_project/[Link]
Point d'entrée pour le serveur
WSGI (si utilisé pour les
14

© 2024 Prof. Osée Muhindo Masivi

Création d’une application avec Django


Haute Ecole de Commerce de
Kinshasa

Un projet Django peut avoir plusieurs


applications
1. Créer une application
1. Allez dans le dossier du projet et faire la
2. py [Link] startapp nomApplication

2. Executez le serveur :
py [Link] runserver
3. Cliquez sur l’url pour lancer le serveur
15

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Structure d’une applicatio Django


Kinshasa

app_name/ Dossier d'une application Django


spécifique. Chaque application peut
avoir son propre dossier.
app_name/__init__.py Indique que ce dossier est un package
Python.
app_name/[Link] Permet de configurer l'interface
d'administration de Django pour
l'application.
app_name/[Link] Contient la configuration de l'application,
comme son nom et ses paramètres
spécifiques.
app_name/[Link] Contient les modèles de données,
définissant les tables de la base de
données.
app_name/[Link] Contient les tests unitaires de l'application.
app_name/[Link]
16

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Structure d’une applicatio Django


Kinshasa

app_name/migrations/ Indique que ce dossier contient des


__init__.py
fichiers de migration pour la base de
données.
app_name/[Link] Contient les routes/URLs spécifiques à
l'application.
app_name/templates/ Dossier contenant les fichiers de template
HTML utilisés pour afficher les pages web.
app_name/templates/ Sous-dossier pour organiser les templates
app_name/
spécifiques à cette application.
app_name/static/ Dossier contenant les fichiers statiques
comme les CSS, JavaScript, images, etc.
app_name/static/app_name/ Sous-dossier pour organiser les fichiers
statiques spécifiques à cette application.
17

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Création des Classes Modèle


Kinshasa

• Les classes Modèle de chaque projet


correspondent aux entités de
l’application et sont créées dans le
fichier “[Link]” de l’application.
• Le modèle ORM (Object-Relational
Mapping) de Django permet de travailler
avec une base de données relationnelle
(comme MySQL, PostgreSQL, ou SQLite)
en utilisant des objets (des classes)
Python au lieu d'écrire des requêtes SQL
directement.
18

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Création des propriétés de Classes Modèle


Kinshasa

• La Classe créée dans le fichier [Link]


correspond à une table de base de données.
• Les propriétés de ces classes deviennent les
champs des tables.
• Pour cela, il faut faut définir les propriétes de ces
champs à la creation des classes:
▫ Importer les models de base de données
Django :
from [Link] import models
▫ Créer la classe
 Class nomclass([Link]):
▫ Ajuster le type de champs :
19

© 2024 Prof. Osée Muhindo Masivi

Example: Classe Chambre


Haute Ecole de Commerce de
Kinshasa

class Chambre([Link]):
numero = [Link](max_length=10,
unique=True)
typechambre =
[Link](choices=[ (‘simple',
‘Simple'),('double', 'Double’), ('suite',
'Suite'),], default="simple", max_length=10)
prix_par_nuit = [Link]
(max_digits=6, decimal_places=2)
disponible = [Link]
(default=True)
Principales propriétes
Propriété Description
CharField Champ de texte court. Utilisé pour stocker
des chaînes de caractères, comme des noms,
titres, etc.
TextField Champ de texte long. Utilisé pour stocker des
textes longs comme des descriptions.
IntegerField Champ pour stocker des nombres entiers.
FloatField Champ pour stocker des nombres à virgule
flottante.
DecimalField Champ pour stocker des nombres décimaux
avec une précision spécifiée (par exemple,
pour des prix).
BooleanField Champ pour stocker des valeurs booléennes
(True ou False).
Principales propriétes
Propriété Description
DateField Champ pour stocker une date (année, mois, jour).
DateTime Champ pour stocker une date et une heure (année,
Field mois, jour, heure, minute, seconde).
TimeField Champ pour stocker l'heure (heure, minute,
seconde).
EmailFiel Champ pour stocker une adresse email.
d
URLField Champ pour stocker une URL.
FileField Champ pour stocker un fichier, avec un lien vers
un fichier à partir du système de fichiers.
Principales propriétes
Propriété Description
ImageField Champ pour stocker une image, qui est une extension
de FileField avec validation spécifique pour les fichiers image
ForeignKey Champ de clé étrangère. Utilisé pour créer une relation "un
à plusieurs" (chaque instance du modèle peut avoir une
seule instance d'un autre modèle).
OneToOneFiel Champ de relation "un à un". Utilisé pour créer une relation
d un-à-un entre deux modèles.
ManyToMany Champ de relation "plusieurs à plusieurs". Utilisé pour
Field créer une relation entre plusieurs instances de deux
modèles.
AutoField Champ entier unique qui s'auto-incrémente à chaque ajout
d'une nouvelle entrée (souvent utilisé pour l'ID).
ImageField Champ pour stocker une image, qui est une extension
de FileField avec validation spécifique pour les fichiers image
Principales propriétes
Propriété Description
SlugField Champ utilisé pour créer des "slugs" (partie de
l'URL générée à partir d'un titre ou autre).
PositiveIntegerFiel
d
Champ pour stocker un entier positif.
PositiveSmallIntege
rField
Champ pour stocker un petit entier positif.
NullBooleanField Champ pour stocker une valeur booléenne,
pouvant être True, False, ou None (par exemple, pour
des champs optionnels).
IntegerRangeField Champ pour stocker une plage de nombres
entiers (dans les versions Django modernes).
SlugField Champ utilisé pour créer des "slugs" (partie de
l'URL générée à partir d'un titre ou autre).
24

© 2024 Prof. Osée Muhindo Masivi


Haute Ecole de Commerce de

Migration des modèles vers tables


Kinshasa

•Une fois que les modèles sont créés


ou à chaque modification des
modèles, il faut faire la migration.
Elle se fait en deux étapes :
▫ Création des migrations
 py [Link] makemigrations
▫ Migrer vers les tables
 py [Link] migrate
•La base de données sera créée et les
Utilisation de django admin
• Le Frameword Django dispose d’un espace
d’administration qui permet aux
programmeur d’administrer et gérer les
entrées et sorties élémentaires des
applications.
• Pour l’utiliser, il faut:
1. Créer le super utilisateur
py [Link] createsuperuser
2. Inclure l’application parmis les applications
exécutables du projet
3. Inclure les classes dans l’interfaces
administration
Inclure l’application parmis les
applications exécutables du projet

• Cela se passe dans le fichier “[Link]” du


projet principal sous INSTALLED_APPS :
INSTALLED_APPS = [
'[Link]',
'[Link]',
'[Link]',
'[Link]',
'[Link]',
'[Link]',
'rest_framework',
'hotel',
Inclure les classes dans l’interface
administration
L’opération se fait dans le fichier “[Link]” de
chaque application. Elle consiste à :
▫ Importer admin de Django et les classes de ”models”
 from [Link] import admin
 from .models import Chambre
▫ Décorer c’est à dire enregistrer le modèle de chaque
classe auprès de l'interface d'administration de
Django, en lui associant un gestionnaire
personnalisé.
@[Link](Chambre)
class ChambreAdmin([Link]):
Code de prersonnalistion
Ou
pass
Principales méthodes de personnalisation
Méthod Description
e
list_display Permet de spécifier quelles colonnes
seront affichées dans la liste des
objets du modèle dans l'interface
d'administration.
Exemple : list_display = ('nom', 'date_creation').
list_filter Permet d'ajouter des filtres à la
colonne latérale de l'interface
d'administration pour filtrer les
objets. Exemple : list_filter = ('date_creation',
'categorie').
search_fields Permet de définir les champs sur
Principales méthodes de personnalisation
Méthod Description
e
ordering Permet de spécifier l'ordre de tri des objets
lorsqu'ils sont affichés dans l'interface
d'administration.
Exemple : ordering = ('date_creation',)
fields Permet de personnaliser l'ordre et l'affichage des
champs dans le formulaire de modification d'un
objet.
Exemple : fields = ('nom', 'description').
exclude Permet d'exclure certains champs du formulaire de
modification d'un objet dans l'interface
d'administration.
Exemple : exclude = ('slug',).
Principales méthodes de personnalisation
Méthode Description
readonly_fields Permet de rendre certains champs en lecture seule
(non modifiables) dans le formulaire
d'administration.
Exemple : readonly_fields = ('id', 'date_creation').
list_per_page Permet de définir le nombre d'objets affichés par
page dans la vue de liste d'objets.
Exemple : list_per_page = 20.
inlines Permet d'ajouter des sous-modèles dans le
formulaire d'administration (par exemple, des
modèles avec des relations de
type ForeignKey ou ManyToMany).
Exemple : inlines = [CommandeInline].
Principales méthodes de personnalisation
Méthode Description
save_on_top Permet d'afficher les boutons "Enregistrer" et
"Annuler" en haut de la page de modification
d'un objet.
Exemple : save_on_top = True.
date_hierarchy Permet d'ajouter une hiérarchie de dates en haut
de la liste d'objets pour faciliter le filtrage par
dates.
Exemple : date_hierarchy = 'date_creation'.
filter_horizontal Permet de personnaliser l'affichage des
champs ManyToManyField en utilisant une interface
avec des boîtes de sélection horizontales.
Exemple : filter_horizontal = ('tags',).
Principales méthodes de personnalisation
Méthode Description
filter_vertical Similaire à filter_horizontal, mais permet d'afficher
les champs ManyToManyField sous forme de boîtes
de sélection verticales.
Exemple : filter_vertical = ('categories',).
prepopulated_fields Permet de remplir automatiquement un champ
en fonction d'un autre champ (souvent utilisé
pour remplir un slug basé sur un titre).
Exemple : prepopulated_fields = {'slug': ('titre',)}.
actions Permet de définir des actions personnalisées
(par exemple, modifier un champ pour
plusieurs objets sélectionnés).
Exemple : actions = [mark_as_published].
Exemple : ChambreAdmin
@[Link](Chambre)
class ChambreAdmin([Link]):
list_display =
["numero","type","disponible","prix_par_nuit
"]
search_fields =["numero","type",]
list_filter =["type","disponible"]
@[Link](Client)
Creation des utilisateurs
•Pour acceder à l’interface admin, il
faut avoir créer aumoins un utilisateur.
Pour cela il faut créer un un Super
utilistateu (”superuser”):
▫py [Link] createsuperuser
•Il maintenant le temps de se connecter
en utilisant l’url situé dans
urlpatterns = [
path('admin/', [Link]),
]

Vous aimerez peut-être aussi