Skip to content.
Logo tecnoteca

Portale Tecnoteca.it

Logo tecnoteca

Vai al sito aziendale Tecnoteca.com


 

Script Python

1 import mapscript
2
3 request = context.REQUEST
4 RESPONSE =  request.RESPONSE
5
6 #define
7 point = map(float, (request['x_value'], request['y_value']))
8 zoom_factor=0.1
9
10 #zoom
11 context.demo.center_k(point)
12 context.demo.zoom(zoom_factor)
13
14 #redirect
15 RESPONSE.redirect('page_index_base')



Questo è un esempio di codice python all'interno di un oggetto script di ZOPE.
In particolare questo esempio riporta alcune delle caratteristiche principali degli script:
  • riga 1: l'import è un comando fondamentale per estendere gli oggetti, metodi e funzioni attualmente caricati; di default infatti il python di ZOPE è caricato in una versione base per renderlo più veloce e più leggero.
    Nel momento in cui si deve ricorrere a qualche classe non compresa di default tra quelle fondamentali, è necessario fare gli import; non è raro trovare numerosi import all'inizio di script python.
  • riga 3: viene catturato l'HTTP request, ovvero tutta le variabili di sessione.
    Il request è molto importante in quanto contiene tutte le informazioni che i vari oggetti di ZOPE si scambiano continuamente per comunicare tra loro; generalmente questa riga di codice all'interno di uno script non manca mai.
  • riga 4: viene definito il response, ovvero la risposta ad una request.
    La response è fondamentale almeno quanto il request poiché permette di gestire quella che sarà la risposta dello script alla chiamata ricevuta; alla riga 15 è possibile intravedere un tipico redirect effettuato sull'oggetto response.
  • righe 7-8: si definiscono lo zoom_factor e la variabile point.
    Nel definire la variabile point è possibile vedere come vengono recuperate le variabili presenti all'interno della request.
  • righe 11-12: ancora un esempio di operazioni che è possibile fare all'interno di uno script; in questo caso vengono chiamati dei metodi sull'oggetto cartina corrente (“context.demo” è il riferimento alla cartina, ovvero l'oggetto ZMapServer map) che quindi cambia il proprio stato secondo i metodi e le variabili fissate.
  • riga 15: le operazione che si dovevano compiere sono state portate a termine e non rimane altro da fare che specificare che tipo di risposta si vuole dare; in questo caso lo script esegue un redirect sull'oggetto “page_index_base” che non avendo nessun path specificato si troverà nella stessa cartella dove si trova lo script.

Ora che si è analizzato lo script in ogni sua riga è interessante sottolineare che questo script esegue la centratura della mappa su un determinato punto fornito attraverso le coordinate X e Y (decimal degree).
Questo script è strutturalmente molto semplice anche se riporta alcuni degli aspetti più importanti degli oggetti script python all'interno di ZOPE.
Un altro esempio di script che riporta alcune diverse funzionalità del linguaggio python è il seguente:

request = container.REQUEST
RESPONSE =  request.RESPONSE
session = request.SESSION

layer = context
item = layer.sGet('labelitem')

try:
    saved = session['saved_labelitem_' + layer.id]
except:
    saved = None

if item: # Labels OFF
    saved = item        
    session['saved_labelitem_' + layer.id] = saved
    layer.sSet('labelitem', None)
else: # Labels ON
    if not item:
        layer.sSet('labelitem', saved)
    else:
        pass

RESPONSE.redirect(request['return_url'])



In questo esempio sono visibili alcune altre strutture quali ad esempio “try-except” e “if-else” annidati.



Tesi di Laurea:
"Sviluppo funzionalità gis su portale Zope"
di Marco Celotti


- Università degli studi di Udine -
-  Facoltà di Scienze Matematiche Fisiche e Naturali  -
- Dicembre 2004 -


Slide Tesi.ppt


Video Tesi.zip  [913 KB formato AVI]