Vous êtes sur la page 1sur 17

LE DEROULEMENT DU STAGE

II.1. PRISE DE CONTACT ET LES INTERVENTIONS


Le stage s’est déroulé du 11 au 16 septembre 2022, où nous avons passé
par une partie d’observation et une partie pratique.
Pendant la partie d’observation nous avons eu l’occasion de visiter certaines
département et bureau pour voir comment les activités se déroule.
Et le jour suivant nous sommes passé au laboratoire informatique pour passer à
la pratique, d’où elle s’est basée sur LA PROGRAMMATION plus précisément
avec le langage Python.

II.1 PROGRAMMATION : PYTHON


Canevas du Module de Programmation
- Objectif
- Base de la programmation
- Environnent de développement
- Etude de cas

1. OBJECTIF
L’objectif principal de ce module, est de concilier les théories
apprises en programmation, à la pratique en tenant compte des réalités
professionnelles.
Après la bonne conciliation des théories apprises à la pratique, l’apprenant
sera en mesure de ce qui suit :
 Maîtriser les aspects essentiels de la programmation.
 Savoir analyser et traduire des besoins fonctionnels en algorithmes.
 Savoir s’appuyer sur un Framework pour développer plus simplement des
applications web performantes.
2. Bases de la programmation
Objectif
Découvrir les différents aspects essentiels de la programmation, de la
programmation procédurale à la programmation objet et disposer ainsi de bases
solides permettant d'appréhender par la suite divers langages de développement.
2.1. Définition d'un programme informatique
Un programme informatique est un ensemble d'opérations destinées à être
exécutées par un ordinateur.
Un programme source est un code écrit par un informaticien dans un langage de
programmation. Il peut être compilé vers une forme binaire, ou directement
interprété
2.2. Algorithmique
Un algorithme est une suite finie et non ambiguë d'opérations ou d'instructions
permettant de résoudre un problème ou d'obtenir un résultat.
2.3. Programmation procédurale :
En informatique, la programmation procédurale est un paradigme qui se fonde
sur le concept d'appel procédural.
Une procédure, aussi appelée routine, sous-routine ou fonction (à ne pas
confondre avec les fonctions de la programmation fonctionnelle reposant sur des
fonctions mathématiques), contient simplement une série d'étapes à réaliser.
N'importe quelle procédure peut être appelée à n'importe quelle étape de
l'exécution du programme, y compris à l'intérieur d'autres procédures, voire dans
la procédure elle-même (récursivité).
Avantages de la programmation procédurale :
La programmation procédurale est un meilleur choix qu'une simple
programmation séquentielle. Les avantages sont en effet les suivants :
 La possibilité de réutiliser le même code à différents emplacements dans
le programme sans avoir à le retaper (factorisation), ce qui a pour effet la
réduction de la taille du code source et un gain en localité des
modifications, donc une amélioration de la maintenabilité (compréhension
plus rapide, réduction du risque de régression) ;
 Une façon plus simple de suivre l'exécution du programme : la
programmation procédurale permet de se passer d'instructions telles que
Goto, évitant ainsi bien souvent de se retrouver avec un programme
compliqué qui part dans toutes les directions (appelé souvent <<
programmation spaghetti»); cependant, la programmation procédurale
permet les << effets de bord », c'est-à-dire la possibilité pour une
procédure qui prend des arguments de modifier des variables extérieures à
la procédure auxquelles elle a accès (variables de contexte plus global que
la procédure).

Exemple des langages procéduraux :


 BASIC
 C
 COBOL
 Fortran
 Pascal
 Perl
 PHP (version 4 et inférieur)
 PL/C
 PL/I
 PL/SQL
 Transact-SQL
 W-Langage
2.4. 1. Programmation orientée objet :
La programmation orientée objet est un modèle de langage de programmation
qui s'articule autour d'objets et de données, plutôt que d'actions et de logique.
Par le passé, un programme était une procédure logique qui récupérait des
données en entrée, les traitait puis produisait des données en sortie.
Notion de classe et objet
Classe :
Classe = instanciation + attributs (variables d'instances) + opérations
On appelle classe, la structure d'un objet, c'est-à-dire la déclaration de l'ensemble
des entités qui composeront un objet. Les objets de même nature ont en général
la même structure et le même comportement. La classe factorise les
caractéristiques communes de ces objets et permet de les classifier.
Notion de classe et objet
L’instanciation :
L'objet possède une identité, qui permet de le distinguer des autres objets,
indépendamment de son état. L'instanciation représente la relation entre un objet
et sa classe d'appartenance qui a permis de le créer.
Les attributs (appelés aussi variables d'instances) : Ils ont un nom et soit un
type de base (simple ou construit) soit une classe (l'attribut référence un objet de
la même ou une autre classe).
Les opérations (appelées parfois méthodes) : Elles sont les opérations
applicables à un objet de la classe. Elles peuvent modifier tout ou en partie l'état
d'un objet et retourner des valeurs calculées à partir de cet état.
Notion de classe et objet
Objet :
Un objet est une abstraction d'un élément du monde réel. Il pos informations, par
exemple Id Classe, Lib Classe, etc., et se suivant un ensemble d'opérations qui
lui sont applicables.
De plus, un ensemble d'attributs caractérisent l'état d'un objet, et l'on dispose
d'un ensemble d'opérations (les méthodes) qui permettent d'agir sur le
comportement de notre objet. Un objet est l'instance d'une classe tandis qu'une
classe, est un type de données abstrait, caractérisé par des propriétés (ses
attributs et ses méthodes) communes à des 10 of 43 permet de créer des objets
possédant ces propriétés.
Exemple des langages supportant la programmation orientée objet :

• Ada

• C++ (voir aussi la catégorie C++)

• C#

• Delphi (=Pascal orienté objet)

• Java
• Objective-C

• Perl

• PHP (Depuis la version 4)

• Python

• Small Talk (totalement objet)

• Ruby

• Visual Basic

2.4.2. Choisir son langage de programmation :


On choisit le langage de programmation en fonction de ce que vous comptez
faire dans le développement, car tout est fonction de vos goûts et des contraintes
techniques.
Pour la création des sites web
Vous voulez créer des sites ou des applications web pour ce domaine, il est
souvent mieux de commencer par le HTML et le CSS, bien que ce ne soient pas
des langages de programmation mais plutôt des langages de description de
données (DOM). C'est après la maîtrise de ces deux premiers qui vont souvent
ensemble, que vous vous tournerez vers le PHP et MySQL (est l'un des systèmes
de gestion de base de données les plus rependue et utilisé dans le monde) et le
JavaScript.
Signalons que plusieurs langages populaires permettent actuellement de faire le
développement comme le Python, le Java de Sun Microsystems, l'ASP.NET de
Microsoft et produisent aussi des très bons résultats, il te suffit seulement de les
maîtriser.

2.4.3 Choisir son langage de programmation :


Pour les applications mobiles
Android
Le Java, C# ou même le Python sont le mieux adaptés (il est simple
comparativement aux deux autres car ayant une syntaxe naturelle et facile à
utiliser surtout pour les débutants dans le domaine du développement).

IOS
Pour le développement dédié à iOS (iPhone, iPad, iPod) le langage Objective-C
te permettra de faire des merveilles, notons aussi que c'est possible de faire
quelque chose des mieux avec le C# en utilisant le fameux Xamarin de
Microsoft pour le développement mobile.
Windows Phone
Vous êtes fan de Microsoft et ses produits, vous voulez faires des applications
pour ces produits, le C# est mieux adapté pour vos besoins de développement.
2.5. Notion de variables :
Dans la plupart des langages, on travaille généralement sur des variables, c'est-à-
dire que l'on associe à un nom un contenu. On pourra ainsi appeler une variable
"varl" et y stocker le chiffre 8
2.6. Modularisation du code :
La modularité (la programmation modulaire permet la réutilisation du code, via
l'écriture de librairies).
La réutilisabilité L'extensibilité
Pour une meilleure productivité des développeurs et une plus grande qualité des
applications.
2.7. FRONTEND VS BACKEND :

Langages utilisés

Front End Back End


 HTML  PYTHON
 CSS  RUBY
 JAVASCRIPT  PHP
 JAVA
 C#
 GO
 VB.NET
Package managers
Front End Back End
NPM  COMPOSER (PHP)
YAR  PIP (Python)
N
 NPM (Node.js)
 GEMS (Ruby)

2.7. FRONTEND VS BACKEND :

Framework utilisés

Front End Back End

JavaScript  Laravel
Framework
 Django
 React
 Rails
 Vue
 Spring
 Angular
 Express
 Ember
 Hapi
 Backbone

CSS Framework
 Boots rap
 Fondation
 Bulma
 Sematic UI
 Materialize
 Taiwind CSS
2.7. FRONTEND VS BACKEND :

Bases de données relationnelles


Front End Back End
 MySQL
 PostgreSQL
 Maria DB
 Oracle
 MS SQL SERVER

3. Environnement de développement
3.1. Le Langage Python
Est un langage récent et moderne utilisable pour coder une grande variété de
programmes différents.
Le langage de programmation Python a été créé par Guido van Rossum en 1990
et est rendu disponible sous licence libre. Son développement est aujourd'hui
assuré par la Python Software Fondation, fondée en 2001. Il s'agit d'un langage
interprété fonctionnant sur la plupart des plateformes informatiques (notamment
Linux, Windows et MacOs). Il est également très apprécié des pédagogues qui le
considèrent comme étant un bon langage pour s'initier aux concepts de base de
la programmation.
Depuis sa création, le succès du langage n'a cessé de croitre, jusqu'à le porter
parmi les dix langages de programmation les plus populaires. Il s'agit d'un
langage de haut niveau, à usage général. Les dernières versions stables du
langage sont la 2.7.12 (25 juin 2016) et la 3.5.2 (27 juin 2016). Ces deux
versions, communément appelées Python 2 et Python 3, continuent toutes les
deux d'exister, essentiellement pour des raisons de compatibilité. Dans ce cours,
nous utiliserons la version 3.
Depuis sa création, le succès du langage n'a cessé de croitre, jusqu'à le porter
parmi les dix langages de programmation les plus populaires. Il s'agit d'un
langage de haut niveau, à usage général. Les dernières versions stables du
langage sont la 2.7.12 (25 juin 2016) et la 3.5.2 (27 juin 2016). Ces de versions,
communément appelées Python 2 et Python 3, continuent toutes les deux
d'exister, essentiellement pour des raisons de compatibilité. Dans ce cours, nous
utiliserons la version 3.
3.2. Découverte du Framework

 Qu'est-ce qu'un Framework ?


Le mot Framework vient de l'anglais et se traduit littéralement par « cadre de
travail ». De façon simpliste, un Framework est une grosse boîte à
fonctionnalités et de règles de codage qui permet de réaliser des applications
informatiques.

 Avantages d'un Framework


- Rapidité : nous utilisons des briques toutes prêtes ;

- Organisation du code : production d'un code structuré et maintenable ;

- Connaissances communes : le travail est basé sur une seule et même boîte
à fonctionnalités ;

- Communauté : en général, l'aide et les ressources de qualité ne manquent


pas ;

- Maintenance : en tant qu'utilisateurs, nous ne nous occupons que du fond


de notre application, la forme est gérée par le Framework lui- même ;
3.3. Configuration requise pour Python et Pharm.
Exigences matérielles

▪ 1.6 GHz or faster processor


▪ 1 GB of RAM (1.5 GB if running on a Virtual machine)

▪ 20 GB of avalable hard disk space

▪ 5400 RPM hard disk drive

▪ DirectX 9-capable vidéo card that runs at 1024 x 768 or higher display
resolution

Windows 8.1 (x86 and x64)


Windows 8 (x86 and x64)
Windows 7 SP1 (x86 and x64)
Windows Server 2012 R2 (x64)
Windows Server 2012 (x64) Windows Server 2008 R2 SP1 (x64)

3.4. Liste des Framework Python

 Django
 Pyramide
 TurboGears
 Flask
 Bottle
 CherryPy
Etc.
3.5. Découverte du Framework DJANGO

Django, le Framework web pensé pour les perfectionnistes qui veulent tenir
leurs deadlines.
Il contient tout ce dont vous avez besoin ! Un serveur web, un ORM puissant, un
moteur de gabarit, un client de test et beaucoup d'autres fonctionnalités qui vous
faciliteront la vie !
Historique

▪ Développé à l'origine à partir de 2003 pour un journal local de la ville de


Lawrence dans le Kansas par Adrian Holovaty et Simon Willison

▪ But: Réaliser une sorte de CMS, simple à utiliser pour les non
informaticiens

▪ En Open Source sous Licence BSD depuis 2005

▪ Beaucoup d'évolutions depuis

▪ Nommé ainsi en souvenir de Django Reinhardt, musicien de Jazz

Caractéristiques
 Framework Web de référence
 ORM, Template
 Cache
 Migrations (intégrées tardivement, l'un des meilleurs systèmes de
migrations existant)
 Formulaires, Vues génériques
 Authentification
 Internationalisation, Unicode
 Gestion complète des exceptions
 Bonne documentation
Framework Web généraliste offrant
 MVT = Modèle Vue Template Système de Template
 ORM = Object Relationnel Mapper (comme SQLAlchemy ou Doctrine)
 Serveur Web intégré Interface d'Admin complète, souple et extensible
3.6. Installation Django
Virtualenv
C'est un Environnement virtuel Python qui permet d'installer ses propres
paquets.
Création virtualenv -p python3
Myenv

Installation de Django
pip install django

3.7. Création d'un projet avec Django ?


Pour créer un projet django, on procède comme suit :
Django-admin Start Project Gestion Abonnes
Lancement du serveur
Python manage.py runserver
3.8. Création d'une application
Django-admin startup auteurs
3.9. Configuration
Editez le fichier settings.py pour y configurer
 L'internationalisation
 Le format de Date par défaut
 Et ajouter l'application auteurs aux applications installées
En particulier modifier ou ajouter les lignes suivantes si besoin

Puis ajouter notre nouvelle App aux applications chargées par défaut :
3.10. Les Url et les Vues
Pour faire fonctionner notre application, nous avons besoin de configurer au
moins une route (URL) qui va déclencher un comportement. Les routes se
configurent dans les fichiers urls.py
Les fichiers urls.py
Editons tout d'abord le fichier GestionAbonnes/urls.py et ajoutons la ligne
suivante dans url patterns :
From django. Contrib import admin from django. url import include, path
Url patterns = [path ('admin/", admin. site. Url), path ('auteurs/', include
('auteurs. Url'))
Fichier urls.py dans l'App auteurs
From django. Url import path from. Import views url patterns = [path ('index',
views. Index, Name='index')
3.11. Les views
Les Views ou Vues correspondent en gros aux « < contrôleurs >> dans une
application MVC, c'est à dire qu'elles vont faire généralement le lien entre le
modèle et les Template d'affichage en jouant le rôle de << chef d'orchestre » ou
d'aiguillage.
Dans le répertoire Gestion Abonnes/auteurs, il va falloir ajouter d fichier
views.py la fonction index () suivante :
From Django, shortcuts import rendre
From. Model import Auteur
Def index(request) :
auteurs-Auteur.objects.all ()
Return rendre (requête, ‘auteurs/index.html', {'posts’ : auteurs})
Defshow (request, id) :
auteur-Auteur.objects.get(pk-a)
Return render (request,'auteurs/show, humi, post : auteur})

3.12. Le modelé de « auteurs » : class Auteur


- Noms
- Prénom
- Sexe
- Nationalité
3.13. Le modelé de « auteurs) : class Auteur
From Django. DB import model
Class Auteur (models. Model)
Noms = models. Char Field(max_length=50)
Prénom = models. Char Field(max_length=50)
Sexe = models. Char Field(max_length=10)
Created_date = models. Date Field(auto_now_add=True)
Def_str_(self) :
Return self. Noms
3.14. Migration de Classes - Model en tables (Exécution du Code
First)
Python manage.py makemigration
Python manage.py migrate
Shell de Django
Python manage.py Shell
>>> from auteurs. Model import Auteur #importer la class Auteur
>>> Auteur.objects.all () # lister la liste des auteurs créés
Créons à présent un auteur :
>>> auteur-Auteur ()
>>> auteur. Noms='LEPEYA BEMANGA'
>>> auteur. Prénom='BLESSING'
>>> auteur. Sexe='FEMININ'
>>> auteur. Nationalité='CONGOLAISE
>>> # on enregistre
>>> auteur. Save ()
Vérifions qu'elle est bien enregistrée :
>>> auteur-Auteur.objects.all ()
Utilisation de l'interface d'administration
L'interface administration de Django est une application au même titre que celle
que vous êtes en train de créer.
Créons d'abord un compte d'administrateur avec un mot de passe qui nous
permettra de rentrer dans le mode administrateur. Pour cela utilisons la
commande :
Python manage.py createsuperuser
Ajout du modèle de tâches à l'admin
Pour ajouter le modelé Auteur à l'administration il faut modifier le fichier
admin.py de l'application de la manière suivante :
From django. Contrib import admin from. Model import Auteur admin. site.
Registre(Auteur)
Ajout du modèle de tâches à l'admin
From django. Contrib import admin
from.models import Auteur
class Auteur Admin(admin.ModelAdmin):
class AuteurAdmin(admin.ModelAdmin):
List_display= ('noms', 'prenom', 'sexe', 'Nationalité')
Read_only=('created_date')
admin. site. Registre (Auteur, Auteur Admin)
L'ennui est que les taches ne présentent que leur nom dans l'admin. On
souhaiterait voir figurer également la due date et la Schedule date. Pour ce faire,
on modifie le fichier admin.py en lui ajoutant une classe héritant de admin.
modelAdmin

Application en mode exécution

4. Etude de cas
4.1. Enoncé
Dans le souci de rendre sa gestion plus fluide et moderne, la section
Bibliothèque de l'ISC veut se doter d'une application Web pour la gestion de ses
activités.
Les fonctions attendues de l'application sont les suivantes :
- L'inscription des abonnés

- Gestion des ouvrages (Créer et mettre à jour des ouvrages)

- Gestion des auteurs (Créer et mettre à jour des auteurs des ouvrages)
Gestion de consultation des ouvrages par les abonnés
Les états attendus se présentent comme suit :

- La liste des ouvrages consultés

- La liste des abonnés

- La liste des ouvrages

- La liste des auteurs

Vous aimerez peut-être aussi