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 ce langage.
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 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") je propose la solution historique : emploi
de PHP et de mySQL (SGBD relationnel).
Et bien sachez que vous pouvez également utiliser Python à la place de PHP et 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 Python
tel Django ou Flask. Maintenant pour de petits scripts on peut encore utiliser le CGI.
Pour tester en local une page contenant du code PHP vous devez passer par un serveur HTTP tel Apache (serveur inclus dans un pack intitulé wampserver).
Par contre si vous utilisez Python en guise de langage côté serveur, vous pouvez créer (en quelques lignes de code un programme faisant fonction de serveur local).
À la racine de C: je crée un nouveau dossier que je nomme "python_web".
Puis je crée dans ce nouveau répertoire un fichier nommé "serveur.py" (donc un script python).
Ci-dessous le code de ce programme :
N'utilisez plus l'IDLE pour saisir le code mais un éditeur de textes tel notePad.
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 : python serveur.py
Alors je peux ouvrir un navigateur web puis je
saisis dans la barre d'adresse du navigateur : 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.
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).