Hello world¶
Come è tradizione iniziamo da Hello World, ovvero dalla pagina più semplice possibile. In questa pagina viene presentato il primo esempio della sintassi di Genropy nella versione base e successivamente in versioni più complesse.
Esaminiamo in dettaglio il codice:
class GnrCustomWebPage(object):
def main(self,root,**kwargs):
root.h1('hello world!')
Per prima cosa viene definita una classe GnrCustomWebPage
che eredita da object
.
Come vedremo in seguito tale classe ha solo la funzione di un raccoglitore di metodi
che verranno in seguito mixati dinamicamente alla pagina in esecuzione.
La classe che andiamo a scrivere può definire tutti i metodi necessari ma in particolare
deve definire un metodo main
che viene invocato dal sistema per costruire la ricetta da inviare
al client.
Il metodo main
riceve root
che rappresenta il punto di partenza della pagina stessa.
Rimandiamo al capitolo sulle strutture per i dettagli relativi a questo tipo di sintassi.
Per lo scopo di queste lezioni basta sapere che l’oggetto root
che riceviamo è una struttura, ovvero
un tipo particolare di Bag e che lo scopo della chiamata main
è proprio quello
di riempire questa struttura.
Il metodo main
può ricevere anche altri argomenti denominati genericamente **kwargs
ma per il
momento non ce ne occupiamo.
Sull’oggetto root
viene poi chiamata la funzione div
che provvede ad aggiungere a
root
un nodo di tipo div (lo stesso vale per gli altri tag html come ad es. h1, b, u). Il primo parametro della funzione, in questo caso la stringa «Hello world»
corrisponde al parametro innerHTML.
Proviamo ora a variare font e colore del testo e ad aggiungere dei margini:
In questo esempio usiamo l’attributo style
per assegnare alcuni attributi del testo.
In questa versione vediamo come sia possibile definire singolarmente i vari attributi HTML con l’avvertenza di sostituire il simbolo “-“ con “_” come ad esempio “font_size” invece di “font-size”.
Oltre agli attributi standard esistono alcuni attributi per cui è possibile dare una definizione più amichevole rispetto allo standard. Vediamo ad esempio gli attributi rounded e shadow.