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 )

Quand on liste les fichiers du répertoire, on constate que les droits sont écrits d'une façon différente.

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)

1
#!/usr/bin/python3
2
# -*- coding: UTF-8 -*-
3
import cgitb
4
5
#la documentation en ligne 
6
#https://docs.python.org/2/library/cgi.html
7
8
import cgi
9
10
#pour afficher les erreurs 
11
cgitb.enable()
12
13
print ("Content-Type: text/html ;charset=utf-8\r\n\r\n")
14
15
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.

1
#!/usr/bin/python3
2
# -*- coding: UTF-8 -*-
3
import cgitb
4
#https://docs.python.org/2/library/cgi.html
5
import cgi
6
7
#pour afficher les erreurs 
8
cgitb.enable()
9
10
11
print ("Content-Type: text/html ;charset=utf-8\r\n\r\n")
12
13
14
15
from montad import GestionBdd
16
17
maconnection = GestionBdd('labdd','conf','config','127.0.0.1')
18
maconnection.connect()
19
20
maconnection.effectuerequete("SELECT nom,prenom,reference FROM `utilisateurs`")
21
22
23
for i in maconnection.L:
24
    print(i[0],"-",str(i[2]))
25
26
maconnection.close()