Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Dans le chapitre suivant j'aborde les "templates" (pages web dynamiques) : Flask et les templates
Avant d'aborder le développement de sites web en python, je voudrais vous montrer que le "surf" sur la toile peut être automatisé et que toujours via Python, vous pouvez "moissonner" le web c'est à dire récupérer des infos sur des pages web.
#nom programme : surfer.py
# programme qui ouvre dans le navigateur par défaut tous les tutos
import webbrowser
liste_url = [
'https://darchevillepatrick.info',
#page accueil
'https://darchevillepatrick.info/python/python1.php',
# tutoriel python
'https://darchevillepatrick.info/debutant/debuter0.php',
# tutoriel débuter en prog. web
'https://darchevillepatrick.info/debutant/debuter20.php',
# tutoriel PHP et MYSQL
'https://darchevillepatrick.info/html/html0.php',
#tutoriel html5
'https://darchevillepatrick.info/css/css0.php',
#tutoriel css3
'https://darchevillepatrick.info/svg/svg0.php',
#tutoriel svg
'https://darchevillepatrick.info/inkscape/ink0.php',
#tutoriel inkscape
'https://darchevillepatrick.info/js/js0.php',
#tutoriel javascript
'https://darchevillepatrick.info/canvas/canvas0.php'
#tutoriel sur Canvas
]
for url in liste_url:
webbrowser.open(url)
Il faut importer le module webbrowser.
Les différentes url sont stockées dans une liste.
Une boucle parcourt cette liste et ouvre chaque page web dans un nouvel onglet de la fenêtre du navigateur.
J'utilise donc la fonction open_new_tab() du module.
À partir de l'explorateur de fichiers, double cliquez sur "surfer.py".
Le navigateur par défaut est ouvert avec douze onglets ; un onglet pour chaque URL de la liste.
# nom programme : entete.py
import requests
url = "https://darchevillepatrick.info"
response = requests.get(url)
# Récupérer l'entête HTTP de la page web
entete = response.headers
for cle, valeur in entete.items():
print(f'{cle}: {valeur}')
Attention il faut éventuellement installer la bibliothèque requests via le pip.
response = requests.get(url) : l'objet "response" référence la page web
La variable "entete" contient l'en-tête HTPP de la page sous forme d'un dictionnaire.
Une boucle permet un affichage propre des paires de clé:valeur de ce dictionnaire.
Date: Mon, 12 Jan 2026 15:05:02 GMT Server: Apache Last-Modified: Thu, 24 Jul 2025 15:38:19 GMT ETag: "1b72-63aae9d650085-gzip" Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 2944 Content-Type: text/html X-Varnish: 74069773204 74565026249 Age: 3375 Via: 1.1 webcache2 (Varnish/trunk) Accept-Ranges: bytes Connection: keep-alive
Cette fois nous voulons afficher le code HTML de la page web.
# nom programme : contenu_page.py
import requests
url = "https://darchevillepatrick.info"
response = requests.get(url)
if response.status_code == 200:
contenu = response.text
print("contenu de la page :")
print(contenu)
else:
print("Erreur lors de la requête")
J'ai rajouté un test pour donner un caractère plus professionnel au programme.
Je rappelle que le code 200 retourné par une requête HTPP signifie "aucun problème".
contenu = response.text : propriété "text" au lieu de "headers".
Ce programme affiche tout le code HTML de la page "darchevillepatrick.info" (page d'accueil de mon site)
Je vais maintenant vous montrer comment procéder à du "web scraping".
Le 'web scraping' sert principalement à extraire automatiquement des données de sites web pour des usages variés
comme le commerce électronique, les études de marché ou encore l'enrichissement de bases de données.
Ce programme contient du code HTML qui doit être "parsé" (analysé) :
Pour analyser le code HTML nous devons utiliser la bibliothèque beautifulSoup.
beautiful Soup est une bibliothèque Python spécialisée dans l'analyse et la manipulation de documents HTML et XML.
Cette librairie doit être au préalable installée avec l'utilitaire pip.
Mais pour l'importer vous pouvez saisir tout simplement : import bs4
Analysons quelques instructions du script :
soup = BeautifulSoup(code_html, 'html.parser') : "soup" est une instance de la classe BeautifulSoup qui
va permettre de 'parser' le code HTML récupéré.
Titre général Premier paragraphe Deuxième paragraphe
Le programme affiche bien le contenu des trois éléments HTML ciblés.
Dans la pratique on 'parse' une page web de la 'toile'.
# nom programme : parser_page_web.py
def parser(): # définition fonction
soup = BeautifulSoup(contenu, 'html.parser')
# Afficher le contenu de toutes les liens
for a in soup.find_all('a'):
print(a.text)
print("-------------")
# Afficher le title de la page
title = soup.find('title')
print(title.text)
print("-------------")
# Afficher le titre général de la page
h1 = soup.find('h1')
print(h1.text)
from bs4 import BeautifulSoup
import requests
url = "https://darchevillepatrick.info"
response = requests.get(url)
if response.status_code == 200:
contenu = response.text
parser() #appel fonction
else:
print("Erreur")
Nous devons donc utiliser les librairies requests & beautifulSoup.
Le programme doit être structuré : une routine principale appelant une fonction.
La fonction affiche les contenus des éléments HTML suivant : a, title, h1
Débuter en prog. web (HTML & CSS) Découverte de PHP et MySQL Tutoriel HTML - version 5 Tutoriel CSS - version 3 Dessin vectoriel avec SVG Le framework Snap SVG Inkscape & BoxySVG Tutoriel JavaScript Frameworks jQuery & Vue API Canvas Le site Doris Biologie aquatique pour les nuls Courtes vidéos sur des animaux marins fascinants Guide de survie en orthographe Tutoriel Python Développement web avec Flask Python page facebook relative à mon site ------------- Programmation web & POO avec Python & biologie aquatique & guide de survie en orthographe - site de Patrick Darcheville ------------- Site de Patrick Darcheville
Dans cette deuxième partie, j'aborde le développement web en Python et
plus précisément via son framework Flask.
Ce chapitre est une "mise en bouche" ; les chapitres suivants porteront toujours sur le framework flask.
Avant que n'existent des frameworks tels Django et Flask, il fallait utiliser la technologie CGI pour développer une application web
en Python.
La technologie CGI est considérée comme dépassée en raison de ses limitations en matière de performance et de sécurité.
Dans le cadre de cette technologie on mélangeait dans un même fichier des instructions Python avec du HTLM, du CSS voire du SQL.
Ce "joyeux mélange" rendait très difficile la compréhension du code et donc sa maintenance.
Les développements web en python se basent désormais sur des frameworks tels que Django ou Flask qui proposent une architecture rigoureuse.
Flask est un micro framework open-source de développement web en Python.
Flask a été créé initialement par Armin Ronacher en 2010.
Le souhait de son créateur était de réaliser un framework web Python très simple d'emploi.
Si vous connaissez Flask, vous n'aurez aucune difficulté pour aborder Django.
Flask est une bibliothèque Python. Donc pour le télécharger sur votre PC il faut utiliser pip.
Afin d'obtenir dans chaque fichier de l'application, un code facile à comprendre donc facile à maintenir il faut bien séparer les données des traitements.
Créez un nouveau dossier à la racine de C: et nommez le "flask_basique".
Utilisez l'IDLE de Python pour produire le code suivant :
Ce fichier est bien sûr enregistré dans "C:\flask_basique".
J'ai importé la fonction "Flask" du module "flask" . Attention : un F majuscule pour la fonction & un f minuscule pour le module.
Est associée à la route '/' la vue (une fonction Python) nommée "bonjour()".
"/" représente la racine du site !
Il faut toujours associer à une route une vue.
Le dernier bloc (if __name__ ==...) est très important ; c'est cette instruction qui crée le serveur web local sur le
port 5000 (par défaut).
Ce serveur doit être utilisé en phase de développement mais en phase de production.
Toujours dans le cadre de l'IDLE Python cliquez sur la commande "RUN MODULE".
Texte qui apparait alors dans le shell de l'IDLE :
* Serving Flask app 'bienvenue' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead * Running on http://127.0.0.1:5000 Press CTRL+C to quit
Le terminal vous informe que le serveur web local "tourne" sur le port 5000.
J'ouvre alors le navigateur (Chrome ou Firefox) ; je saisis dans la barre d'URL du navigateur
localhost:5000
Le message "Bienvenue sur Flask" est alors affiché dans l'onglet du navigateur et avec une mise en forme correspondant
au formatage par défaut de l'élément H2 (gras, grande taille du texte).
En effet, étant à la racine du site c'est la vue "bonjour" qui est exécutée.
Tapez le code suivant sous NotePad (ou un éditeur de textes équivalent) ; enregistrez le fichier sous le nom "maintenant.py" dans le dossier "c:\flask_basique".
Pour gérer les dates et heures je dois importer le module datetime.
ce module comprend entre autres la fonction datetime().
dt.datetime.now() retourne l'instant présent.
les propriétés applicables à cet objet sont : hour, minute, second, year, day, month
Je dois retourner dans la fenêtre du navigateur une expression contenant des variables.
Pour éviter conversions et concaténations, je crée une chaine formatée dans la variable "message".
Constatez qu'une "f-strings" peut contenir du balisage HTML.
Je vous propose une deuxième méthode pour lancer une application flask.
Via l'explorateur de fichiers, ouvrez le dossier contenant "maintenant.py" puis double cliquez sur ce fichier. L'invite de commandes (cmd) s'affiche :
* Serving Flask app 'maintenant' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 Press CTRL+C to quit
Le terminal vous informe que le serveur web local "tourne" sur le port 5000.
J'ouvre alors un navigateur (Chrome ou Firefox) et je tape en guise d'URL : localhost:5000
Tout le code HTML produit est stocké au fur et à mesure dans la variable "chaine" puis
il est retourné au navigateur.
Comme dans l'exemple précédent j'utilise les "f-strings" (ou chaines formatées) pour construire le contenu
de la variable "chaine". Notez qu'une chaine formatée peut non seulement intégrer du balisage HTML mais aussi des expressions
telles {i*j}.
Pour lancer l'application je vous propose une troisième solution.
Tapez "cmd" dans la zone "rechercher".
Le programme 'invite de commandes s'affiche (fond noir et texte en blanc).
Tapez alors :
C:\Users\darch>cd \flask_basique C:\flask_basique>py tables_multiplication.py
L'invite de commandes affiche alors :
* Serving Flask app 'tables_multiplication' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 Press CTRL+C to quit
Encore une fois vous êtes informé que le serveur web local est disponible sur le port 5000.
Vous n'avez plus qu'à ouvrir le navigateur, saisir dans la barre d'URL : localhost:5000
Vous êtes alors à la racine du site (/) donc la vue "table" est exécutée et celle-ci affiche les tables de multiplication.
Vous savez désormais réaliser des micro applications web avec flask et vous savez les tester en local ;
L'objectif est, bien sûr de réaliser de véritables sites web avec Python-flask (site statique voire
site dynamique). Ce sera l'objet des chapitres suivants.