.. _tutor/pagina/hello_world: 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. .. raw:: html
Versione base
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: .. raw:: html
Versione con attributo style
In questo esempio usiamo l'attributo ``style`` per assegnare alcuni attributi del testo. .. raw:: html
Versione con attributi singoli
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'. .. raw:: html
Versione con attributi non standard
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*.