les scripts de test
Comprendre le fonctionnement du mod cgi Apache
Le serveur WEB ne permettra l'exécution de ces fichiers s'ils sont marqués comme exécutables.
On revient sur une partie du programme de première.
Voici le détail des droits du fichier test2.py.
L'extension py nous indique le type de fichier (script python)
Les droits se déclinent
sur trois type d'appartenance :le propriétaire, le groupe et les autres.
et trois types d' autorisation lire, écrire et exécuter (traverser dans le cas d'un répertoire )

Cette écriture, appelée octale permet de coder simplement les droits .
Par exemple pour 7, les droits sont : lire (4) + écrire (2) + exécuter(1)
écrire des scripts cgi : comprendre le principe
étape 3
Un simple script qui affiche bonjour .
A noter que les lignes commençant par un # sont des commentaires, que la première ligne est cependant obligatoire (elle indique ou se trouve l'exécutable python).
les importations :
le mode cgi
puis import cgitb qui va permettre d'afficher les erreurs de façon compréhensibles ...
Indiquer l'en tête pour le navigateur et l'encodage (utf-8)
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import cgitb
#la documentation en ligne
#https://docs.python.org/2/library/cgi.html
import cgi
#pour afficher les erreurs
cgitb.enable()
print ("Content-Type: text/html ;charset=utf-8\r\n\r\n")
print("bonjour")
écrire des scripts cgi : utliser les imports et le TAD
étape 3
Notre TAD fonctionne comme une bibliothèque, il faut l'importer en début de programme.
Ensuite on instancie une variable (abstrait / concret) pour dialoguer avec notre base de données.
A noter lors de l'instanciation, le serveur est identifié comme localhost (127.0.0.1) car les fichiers et la base de données sont hébergés sur le même serveur.
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import cgitb
#https://docs.python.org/2/library/cgi.html
import cgi
#pour afficher les erreurs
cgitb.enable()
print ("Content-Type: text/html ;charset=utf-8\r\n\r\n")
from montad import GestionBdd
maconnection = GestionBdd('labdd','conf','config','127.0.0.1')
maconnection.connect()
maconnection.effectuerequete("SELECT nom,prenom,reference FROM `utilisateurs`")
for i in maconnection.L:
print(i[0],"-",str(i[2]))
maconnection.close()