Subsections
CherryPy si pone tra un compilatore e un application server.
- Come un compilatore, legge file in input e genera un eseguibile. L'eseguibile contiene tutto il necessario
per la gestione del sito web, incluso un proprio HTTP server.
- Come un application server, mette a disposizione siti web dinamici che possono essere uniti ad altre
risorse, come un database.
In un server generato da CherryPy, ogni richiesta di un client (per esempio un browser che richiede una pagina), viene trasformata in una chiamata al metodo di una classe. I parametri inviati dal client diventano
gli argomenti di una funzione.
Con CherryPy, gli sviluppatori di siti web devono solo implementare queste classi e questi metodi.
Non si devono preoccupare se i parametri sono inviati con un GET o un POST, se arrivano come una
piccola stringa o un file che deve essere scaricato.
Sono tutti convertiti in una stringa regolare Python e passati come argomento a un metodo. Il tutto in modo
trasparente allo sviluppatore.
I file di input per CherryPy sono scritti usando un'estensione del linguaggio Python. Questa estensione
definisce classi speciali chiamate CherryClass oltre a differenti metodi per queste
CherryClass:
- function: le funzioni presenti in questo metodo sono usate per processare dati e sono scritte in Python classico. Queste
funzioni generalmente ricevono dati in ingresso e ritornano dati (non HTML)
come uscita.
- mask: le funzioni presenti in questo metodo sono usate per interpretare dati. Sono scritte in CHTL o CGTL (che sono i
linguaggi di templating di CherryPy). Queste funzioni ricevono dati in ingresso e rendono
HTML (o XML; Javascript, ...) in uscita.
- view: le funzioni sono scritte in Python classico e possono essere usate in due modi
differenti:
- possono essere usate come funzioni mask, per interpretare dati. In questo caso, la sola differenza
con funzioni mask è il linguaggio col quale sono scritte. Per comprendere bene, diciamo che una
pagina per lo più statica e con qualche dato dinamico sarà scritta con una funzione del metodo mask (in CHTL o CGTL).
Una pagina con molto contenuto dinamico e poco statico sarà scritta come view (in Python).
- possono essere usate come unione tra una funzione e una maschera. In questo caso il codice sorgente
di una funzione view sarà tipicamente:
applica questa maschera al risultato di questa funzione
Questo concetto di metodi (function, mask e view) usato in CherryClass è una delle principali
caratteristiche di CherryPy. Una classe CherryClass può contenere tutte le informazioni per processare
dati e visualizzarne il risultato, rendendola un modulo a se stante che potrà essere
facilmente riutilizzato o ereditato.
Abbiamo così visto alcuni dei concetti usati in CherryPy. Altri saranno descritti in seguito, ma è il
momento di creare il nostro primo sito web...
See About this document... for information on suggesting changes.