Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site
Remarquez que durant 19 chapitres je n'ai jamais employé le terme "Web".
N'en concluez pas qu'il est impossible de développer des sites web et des applications web avec le langage Python.
Vous allez voir dans ce chapitre que l'on peut utiliser Python comme langage côté serveur.
Vous savez que pour avoir des pages web dynamiques on ne peut pas se contenter de HTML & CSS.
Pour que les documents HTML puissent être mis à jour automatiquement il faut qu'il soient reliés à une base de données via l'emploi
d'un langage côté serveur.
Dans un autre tutoriel de mon site (tuto intitulé "débuter en programmation web") j'ai proposé la solution historique : emploi
de PHP et de mySQL (SGBD relationnel).
Et bien sachez que vous pouvez également utiliser Python à la place de PHP, SQLite à la place de mySQL.
CGI est l'acroynme de Common Gateway Interface.
Cette technologie est désormais dépassée et nous verrons pourquoi. Désormais tout développement web important en Python passe par un
framework tel Django ou Flask.
Pour qu'un programme Python puisse être appelé à partir d'un navigateur il faut créer un serveur web.
À la racine de C: je crée un nouveau dossier que je nomme "python_web".
Puis je produis dans ce nouveau répertoire un fichier nommé "serveur.py" (donc un script python).
Ci-dessous le code du fichier "serveur.py" :
Il faut importer le module cgi.
En python il est possible de créer une chaine multilignes à condition qu'elle soit délimitée par """
C'est que nous faisons pour écrire tout le code CSS & HTML de la page, code qui est contenu dans la variable code_html.
Pour que ce code CSS & HTML soit généré par le serveur HTTP doit être l'argument de la fonction print() de Python.
Il faut lancer le serveur HTTP.
Aspect du terminal windows (CMD ou PowerShell) :
J'ai donc saisi : cd c:\python_web
puis j'ai saisi : python serveur.py (ou py serveur.py)
Alors je peux basculer sur le navigateur et je saisis dans la barre d'URL : localhost:8080/menu.py
La page web s'affiche alors.
La feuille de style interne est prise en compte mais il y a un problème : la lettre E acentué du mot "affiché" apparait sous la
forme de ? dans un losange. Il y a donc un problème d'encodage.
Pour lancer le serveur il y a une autre solution encore plus rapide : à partir de l'explorateur de fichiers de windows double-cliquez sur le fichier "serveur.py".
Faites une copie (toujours dans le dossier "python_web") de "menu.py" et nommez cette copie "menu2.py".
Pour que les chaines de caractères soient bien interprétées en UTF-8 il faut rajouter dans le script une instruction
complexe :
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach() )
Cette instruction fait appel à des objets des modules sys & codecs. Il faut donc importer ces deux modules.
Le code du script "menu2.py" :
Il suffit donc d'insérer les trois instructions suivantes :
Tapez dans la barre d'URL du navigateur : localhost:8080/menu2.py
La page web s'affiche désormais avec toutes les lettres accentuées.
Je vous propose désormais une page web écrite en python qui sera utilisée par le visiteur pour se connecter à son espace. Il y aura donc un interaction entre le script et le visiteur (qui doit effectuer des saisies).