Rappels technologiques
Anatomie d’une application Web
Une application Web est une application hébergée sur un serveur Web, comme Apache, Nginx ou Tomcat, et utilisée par les utilisateurs grâce à un navigateur.
Les utilisateurs de l’application y accèdent grâce à son URL et toutes les interactions se passent sur des pages HTML, comme le montre la figure ci-après. Ces interactions peuvent ou non appeler un traitement sur le serveur Web.
![images/02EI01.png](https://www.eni-training.com/download/a4b72fa1-61d9-4318-9a73-fe3bbb687e89/images/02EI01.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Fonctionnement général d’une application Web
Une application Web est composée de deux grandes parties :
-
La partie front qui tourne sur le navigateur.
-
La partie back qui tourne sur le serveur Web.
1. Code côté back
La partie back d’une application est le code métier de l’application. Elle concerne tout ce qui est traitements internes et appels aux applications tierces du programme, comme le calcul du montant total d’une commande.
Nous pouvons trouver les technologies C#, Node.JS, PHP ou encore JEE/Jakarta pour coder le back d’une application.
C’est ici que se trouvent les tests unitaires et d’intégration.
Il est important de noter que, lorsque le front appelle le back, l’échange de données n’est pas instantané. En effet, les deux parties s’échangent les informations avec le protocole HTTP, ce qui peut provoquer des latences, généralement de l’ordre de la nanoseconde, dans l’affichage du front.
Nous ne nous étendrons pas plus sur la partie back d’une application, l’objectif de cet ouvrage étant les tests fonctionnels.
2. Le code côté front
La partie front d’une application Web utilise le HTML pour modéliser les pages internet, le CSS pour les mettre en forme et le JavaScript pour rendre les pages HTML dynamiques.
Dans les pages HTML, nous allons retrouver du texte, des boutons, des liens sur lesquels l’utilisateur peut cliquer, des formulaires que l’utilisateur doit remplir correctement, etc.
Une application Web peut comporter plusieurs pages HTML, une page ayant une URL unique.
Certaines interactions utilisateur peuvent provoquer un changement de page sans appel au serveur (un clic sur un lien) ou avec un appel au serveur (l’envoi d’un formulaire au serveur qui retourne l’URL de la nouvelle page). D’autres modifient...
Python
Nous rappelons au lecteur dans cette section les éléments essentiels du langage Python.
Pour lancer un script Python (fichier avec une extension .py), nous devons utiliser la ligne de commande :
python nomDuScript.py
C’est cette ligne de commande que lancent les IDE également pour exécuter les scripts Python.
1. Types de variables et opérateurs
a. Types de variables
Python est un langage dynamiquement typé qui accepte les types suivants :
-
int : nombres entiers ;
-
float : nombres décimaux ;
-
complex : nombres complexes (un réel et un imaginaire) ;
-
bool : booléens (deux valeurs possibles : True et False) ;
-
str : chaînes de caractères entre double ou simple quote.
b. Opérateurs
Pour les variables de type numérique, vous pouvez utiliser les opérateurs suivants :
-
Addition de x et y : x + y ;
-
Soustraction entre x et y : x - y ;
-
Multiplication de x par y : x * y ;
-
Puissance de x par y : x**y ;
-
Division réelle de x par y : x / y ;
-
Division entière de x par y : x // y ;
-
Modulo de x par y : x % y ;
-
x += y équivaut à x = x + y ;
-
x -= y équivaut à x = x - y ;
-
x *= y équivaut à x = x * y ;
-
x /= y équivaut à x = x / y ;
-
x //= y équivaut à x = x // y ;
-
x %= y équivaut à x = x % y.
Les opérateurs de comparaison sont : <, >, <=, >=.
L’égalité est symbolisée par un double égal : ==.
La différence est symbolisée par le non égal : !=.
Les opérateurs logiques sont : and, or, not.
c. Listes
Les listes sont les tableaux de Python. Elles possèdent une taille dynamique. Elles sont itérables et possèdent de nombreuses fonctions et méthodes, par exemple len qui retourne la longueur de la liste, contains pour savoir si un élément est contenu ou non dans la liste, etc. Les indices des listes peuvent être négatifs pour la parcourir du dernier élément au premier, ou positifs pour la parcourir du premier élément au dernier.
Le slicing avec l’opérateur d’indexation [] permet la manipulation rapide d’une liste.
liste = [1,2,3]
len(liste) == 3 # True
liste.contains(1) ...
Python et les fichiers
Nous avons enregistré une liste de films sous les différents formats de fichier classiquement utilisés pour stocker des informations : JSON, CSV, XML et XLS.
Notre liste est composée de quatre films : Predator, Very Bad Trip, Spider-Man : Across the Spider-Verse et La cité des enfants perdus. Pour chaque film, nous stockons en plus de son titre, son ou ses réalisateurs, son année de sortie et une langue.
1. Accéder à un fichier avec Python
Pour ouvrir un fichier en Python, nous devons utiliser la fonction native open :
open(cheminDuFichier)
Afin de ne pas avoir à gérer la fermeture du fichier, nous allons utiliser le mot-clé with :
with open(cheminDuFichier) :
# instruction
Ainsi le fichier se fermera automatiquement à la fin du bloc with.
2. Fichier JSON
Un fichier JSON peut contenir les types de données suivants :
-
des chaînes de caractères entre double quote ;
-
un numérique, entier ou décimal ;
-
un booléen ;
-
un objet avec nomObjet :[…] ;
-
une liste avec nomListe :{..}.
Voici notre fichier JSON stockant les informations de nos films :
{
"films": {
"film": [
{
"title": "Predator",
"language": "english",
"director": "John McTiernan",
"year": 1987
},
{
"title": "Very Bad Trip",
"language": "english",
"director": "Todd Phillips",
"year": 2009
},
{
"title": "Spider-Man : Across the Spider-Verse",
...
Exercices
1. Exercice 1
Écrivez un script qui code le FizzBuzz : affichez tous les entiers de 1 à 100 compris, en remplaçant les multiples de 3 par « Fizz », les multiples de 5 par « Buzz » et les multiples de 15 par « FizzBuzz ».
2. Exercice 2
Écrivez un script qui détermine si un mot est un palindrome. Un palindrome se lit aussi bien de gauche à droite que de droite à gauche, par exemple « SOS ».
3. Exercice 3
Écrivez sous forme de classe en Python la représentation suivante d’un film :
-
un titre ;
-
une année de sortie ;
-
un réalisateur ;
-
un âge limite : interdit aux moins de 10 ans, 16 ans ou 18 ans, tout public.
4. Exercice 4
Écrivez sous forme de classe en Python la représentation d’un livre, sachant qu’un livre possède :
-
un titre ;
-
une année de parution ;
-
une description ;
-
un auteur, qui possède lui-même un nom, un prénom et/ou un pseudonyme.