Next Previous Up Top Contents Index

3. Interface WWW à mySQL

3-3 Configuration de base d'un script Python

La configuration des scripts Python est simple et permet d'influer sur l'interface WWW et sur le mécanisme de recherche. ATTENTION, faites une copie de sauvegarde du script avant de le modifier.

Les scripts utilisés par l'interface WWW se trouvent dans les sous-répertoires de
/comm2/soft/httpd/cgi-bin/new-agora. Les scripts qui servent d'interface aux différentes bases de données sont semblables et sont reconnaissables par les suffixes query-result et full-display.

Par exemple, dans le répertoire /comm2/soft/httpd/cgi-bin/new-agora/info-ed-96/ se trouvent deux scripts:

Notation

En Python, les chaînes de caractère sont entourées de guillemets : " ou '

dbname = "csre-info"

Pour écrire une chaîne de caractères sur plusieurs lignes on utilise les triple guillemets:

header = """ Ceci est le 
titre de mon
document 
"""

Les listes sont entourées de parenthèses carrées et leurs éléments sont séparés par des virgules:

multi_choice= ["SpracheChoice","vonChoice","bisChoice"]

3-3.1 Script 'query-result'

Cette section présente les paramètres qui règlent le fonctionnement du script. Le script qui correspond à l'exemple se trouve ici: /comm2/soft/httpd/cgi-bin/agora/info-ed-96/info-ed-query-result.py. La zone des paramètres se trouve au début du fichier et se termine par le signe:

... paramètres ....
                                                                         #
                                                                         ##
                                                                         #   #
#####################################      #
#                                                                                #
# No further changes below this line ...                     #
#                                                                                #
#####################################      #
                                                                         #   #
                                                                         ##
                                                                         #

Paramètres de base

Au début du fichier, une série de commentaires (signalés par #) donne quelques indications que nous complétons ci-après.


host='tecfa.unige.ch'
dbname = "csre-info"
table = "info_ed"
start_page = "http://agora.unige.ch/csre/info/msql/index.html"
addition_page="http://agora.unige.ch/csre/info/msql/info_ed-addition-form.html"
full_script = "http://tecfa.unige.ch/cgi-bin/new-agora/info-ed-96/info-ed-full-display.py"
query_script = "http://tecfa.unige.ch/cgi-bin/new-agora/info-ed-96/info-ed-query-result.py"

temp_path= '/temp/msql.temp/'
logfile='/temp/msql.temp/info-ed-log'

Paramètres pour la requête

Ces paramètres permettent de régler l'étendue de la recherche et les champs à afficher en résultat.


select_list = ["id","Titel","Titel_ubersetzt","Deskriptoren","Descripteurs"]
where_fields = ["Titel","Titel_ubersetzt", "Deskriptoren","Descripteurs"]
multi_choice= ["vonChoice","bisChoice"]
unique_list=[]

Choix multiples

Ces paramètres sont les plus difficiles à fixer. Nous avons vus le principe de la liste à choix multiples dans la section 3-2 "Choix multiples HTML".

Imaginons que nous avons un champ 'langue' dans notre base de données. Lors de la saisie, nous avons donné des codes aux langues. Ainsi, une valeur 1 signifie 'allemand', une valeur 2 signifie 'français' et une valeur 3 signifie 'italien'. Nous ne pouvons pas demander à l'utilisateur de choisir entre trois numéros (il ne sait pas quelle est leur signification) !

Pour remédier à ce problème nous définissons des dictionnaires qui font correspondre une valeur entrée par l'utilisateur à une valeur à utiliser pour la recherche dans la base de données. Le script va faire correspondre la valeur choisie par l'utilisateur (français) dans le formulaire et la valeur qu'il doit rechercher dans la base de données (2).

Le nom du dictionnaire est composé de deux parties: <nom_du_champ>Dict. Dans notre exemple : langueDict. Voici le dictionnaire:

langueDict = {'allemand':'1',
	'français':'2',
	'italien':'3'
           }

multi_boolean = " AND "

vonDict = {'1996':'1996',
           '1995':'1995',
           '1994':'1994',
           '1993':'1993',
           '1992':'1992',
           '1991':'1991',
           '1990':'1990',
           '1989':'1989',
           '1988':'1988',
           '1987':'1987',
           }
 
bisDict = {'1996':'1996',
           '1995':'1995',
           '1994':'1994',
           '1993':'1993',
           '1992':'1992',
           '1991':'1991',
           '1990':'1990',
           '1989':'1989',
           '1988':'1988',
           '1987':'1987',
           }

Contacts


bug_report = "Patrick.Jermann@tecfa.unige.ch"
contact_address = "skbf-csre@ping.ch"

Booléens


hide_rowid = 1
debug = 0
allow_empty_query = 1
enable_add = 0

Header et Footer HTML


page_header =  """
<table border=0>
<tr>
<td><a href=\"http://agora.unige.ch/csre/\"><img alt=\"CSRE logo\" width=76 height=80 border=0 src=\"http://agora.unige.ch/csre/images/t_CSRE_logo.gif\"></a>
<td>
<font size=-2>
Schweizerische Koorinationsstelle für Bildungsforschung<br>
Centre suisse de coordination pour la recherche en éducation<br>
Centro svizzero di coordinamento della ricerca educativa<br>
Swiss co-ordination center for research in education
</font>
<td width=50>
<br>
<td align=right>
Entfelderstrasse 61<br>
CH - 5000 Aarau / Switzerland<br>
<a href=\"mailto:skbf-csre@ping.ch\">skbf-csre@ping.ch</a><br>
t&eacute;l.: +41 (0) 62/ 835 23 90<br>
fax: +41 (0) 62/ 835 23 99<br>
</table> 
"""


page_footer= """
<p><a href=\"http://Hughes.com.au/\"><img src=\"http://agora.unige.ch/images/msql-pwr.gif\" width=110 height=40 border=0 align=left></a>
<address>       <a href=\"mailto:%s\">%s</a></address>
</body></html>
""" % (contact_address,contact_address)
 

3-3.2 Output du script query-result

3-3.3 Script full-display

Le script full-display affiche en entier un seul enregistrement de la base de données. Le script qui correspond à l'exemple se trouve ici: /comm2/soft/httpd/cgi-bin/agora/info-ed-96/info-ed-full-display.py. La modification de ce script permet de changer l'apparence de la page HTML qu'il produit.

Au milieu du script se trouve une commande print qui produit le corps de la page.

Les %s sont remplacés dans l'ordre par les valeurs spécifiées à la fin de la commande print après le signe """ %. Ainsi, le premier %s qui apparaît est remplacé par la valeur de results["Nr"], le numéro de la recherche. Pour ajouter un hypothétique champ 'langue' il suffirait d'ajouter un %s dans le print et d'ajouter results["langue"] à la fin du print (attention à le mettre à la bonne place).


	print """
	<H4>Numéro. Nummer:</H4>
	%s
	<h4>Durée de la recherche. Laufzeit des Projekts</h4>
	%s - %s
	<h4>Titre de la recherche - Titel des Projekts:</h4>
	<h2>%s</h2> 
	<h2>%s</h2>
	<H4>Institution:</H4>
	%s
	<H4>Chercheurs. Bearbeiter des Projekts</H4>
	%s
	<H4>Brève description de la recherche:</H4>
	%s
	<H4>Kurzbeschreibung des Projekts:</H4>
	%s
	<H4>Descripteurs (EUDISED):</H4>
	%s 
	<H4>Deskriptoren (EUDISED):</H4>
	%s 
	<H4>Publications. Veröffentlichungen:</H4>
	%s
	<H4>Méthodes de recherche. Methodische Anlage des projekts:</H4>
	%s
	<H4>Délimitation géographique. Geographischer Raum:</H4>
	%s
	<H4>Type de recherche. Art des projekts:</H4>
	%s
	<H4>Mandataire de la recherche. Auftragsgeber des Projekts:</H4>
	%s
	<H4>Financement de la recherche. Finanzierung:</H4>
	%s
	""" %(results["Nr"],results["von"],results["bis"],results["Titel"],results["Titel_ubersetzt"], results["Institution"],results["Forscher"],results["Abstract_frz"],results["Abstract_dt"],results["Descripteurs"],results["Deskriptoren"],results["Publikationen"],results["Meth"],results["Geo"],results["Typ"],results["Auftrag"],results["Finanzierung"])

3-3.4 Output du script full-display

3-3.1 - Script 'query-result'
3-3.2 - Output du script query-result
3-3.3 - Script full-display
3-3.4 - Output du script full-display

Memo mySQL - 29 Apr 1998

Next Previous Up Top Contents Index

Generated with Harlequin WebMaker